Laborator 8: Structuri. Uniuni. Aplicație: Matrice rare
Obiectivele laboratorului
În acest laborator vom studia:
- structuri în C: organizarea datelor din rezolvarea unei probleme complexe în structuri și uniuni
- copierea structurilor
- practici de urmat în lucrul cu structuri
De asemenea, vom combina structurile cu toate noțiunile învățate anterior (tablouri, alocare dinamică, pointeri, șiruri de caractere)
Materiale utile:
Exerciții
-
Scrieți un program care citește o listă de
n
studenți caracterizați prin nume (maxim 29 de caractere), grupă (maxim 5 caractere) și medie (un număr de tipdouble
), apoi afișează într-un format tabelar (valori despărțite prin\t
) toate informațiile pentru fiecare student, în ordinea alfabetică a numelor lor. -
Modificați programul anterior astfel încât câmpul
nume
să fie alocat dinamic.
- La finalul execuției faceți, cu ajutorul unei funcții, dealocarea memoriei.
- Folosind valgrind verificați că nu aveți memory leak-uri.
- Scrieți o funcție care face copierea unei structuri de tipul celei folosite la punctul 2. Demonstrați că aceasta funcționează corect făcând următorii pași:
- Citiți o structură de tipul student
- Copiați structura citită
- Modificați numele studentului din copia realizată
- Afișați ambele structuri
- Eliberați memoria alocată
- Verificați cu valgrind
ATENȚIE Toate sarcinile se vor realiza folosind o abordare modularizată (cu funcții). Discutați cu asistentul alegerile voastre, dacă nu sunteți siguri care ar trebui să fie semnăturile funcțiilor.
Pentru o aprofundare mai bună a conceptelor prezentate în laborator, vă recomandăm să parcurgeți materialele din arhivele demo_struct.zip și demo_unions.zip de pe Moodle.