Video: Structuri de date in C 2024
Arterele statice sunt alocate pe teancul poate limita capacitatea lor de utilizare. Seturile dinamice sunt alocate pe heap, ceea ce înseamnă că acestea sunt limitate doar de dimensiunea memoriei. Desigur, veți găsi alte câteva diferențe între matricele dinamice și cele statice, însă linia de jos aici este că, deși matricele dinamice necesită puțin mai mult de lucru, deoarece trebuie să gestionați singuri memoria, ele oferă o flexibilitate adăugată în lucrul cu date.
Mai mult decât probabil, veți dori să gestionați date complexe atunci când utilizați matrice dinamice. Exemplul din acest articol online vizează vă rugăm să vă uitați la modul în care puteți utiliza o matrice dinamică cu o structură. Iată un exemplu de cod pe care l-ați putea folosi:
#include #include using namespace std; struct Employee {string Name; int Age;}; int main () {Angajat * DynArray; DynArray = angajat nou (nothrow) [3]; DynArray [0]. Nume = "Harvey"; DynArray [0]. Vârsta = 33; DynArray [1]. Nume = "Sally"; DynArray [1]. Vârsta = 26; DynArray [2]. Nume = "Jeff"; DynArray [2]. Vârsta = 52; cout << "afișează conținutul matricei" << endl; pentru (int i = 0; i <3; i ++) {cout << "nume:" << dynArray [i]. Nume << "tAge:" << dynArray [i]. Vârsta << endl;} ștergeți [] DynArray; return 0;}
În acest exemplu, codul începe prin crearea unei structuri Employee care conține numele și vârsta angajatului. Ați putea folosi orice tip de container dorit - acesta se întâmplă doar ca fiind struct.
Pentru a crea o matrice dinamică, definiți un pointer la variabila matrice. Acest act plasează variabila pe heap, mai degrabă decât pe stiva. Apoi, creați matricea, care conține în acest caz trei intrări de angajați. Codul completează datele și apoi utilizează o buclă pentru a afișa rezultatele pe ecran. Iată ce ar trebui să vedeți atunci când executați exemplul.
Afișarea conținutului matricei Nume: Harvey Vârstă: 33 Nume: Sally Vârstă: 26 Nume: Jeff Vârstă: 52
Observați că accesați membrii individuali ai angajatului accesând indexul matricei necesare și apoi utilizând sintaxa punct numele membrului. Este important să rețineți că matricea dinamică se comportă ca orice altă matrice în sensul că accesați un index pentru a obține o intrare specifică.
Este esențial să utilizați ștergeți [] pentru a elibera memoria utilizată de DynArray. În caz contrar, aplicația dvs. va avea o scurgere de memorie care va afecta în cele din urmă performanța sistemului sau cel puțin va provoca lucruri amuzante. Deoarece sistemele noastre sunt deja amuzante, acționând suficient, probabil că este o idee bună să vă asigurați că cererea dumneavoastră nu "contribuie la această problemă.