Video: Corso di Programmazione in C - Lezione 12 - Matrici dinamiche e doppi puntatori 2024
Gli array statici sono allocati nello stack, che può limitare la loro usabilità. Gli array dinamici sono allocati nell'heap, il che significa che sono limitati solo dalla dimensione della memoria. Certo, troverete alcune altre differenze tra gli array dinamici e statici, ma la linea di fondo qui è che, sebbene gli array dinamici richiedano un po 'più di lavoro da utilizzare perché dovete gestire da soli la memoria, offrono anche una maggiore flessibilità nel lavorare con dati.
Molto probabilmente dovresti gestire i dati complessi quando fai uso di array dinamici. L'esempio in questo articolo online ha lo scopo di accontentare guardando come è possibile utilizzare una matrice dinamica con una struttura. Ecco un esempio del codice che potresti usare:
#include #include using namespace std; struct Employee {string Name; int Age;}; int main () {Employee * DynArray; DynArray = new (nothrow) Employee [3]; DynArray [0]. Nome = "Harvey"; DynArray [0]. Età = 33; DynArray [1]. Name = "Sally"; DynArray [1]. Età = 26; DynArray [2]. Name = "Jeff"; DynArray [2]. Età = 52; cout << "visualizzazione del contenuto di matrice" << endl; for (int i = 0; i <3; i ++) {cout << "nome:" << dynArray [i]. Nome << "tAge:" << dynArray [i]. Age << endl;} delete [] DynArray; return 0;}
In questo esempio, il codice inizia creando una struttura Employee che contiene il nome e l'età del dipendente. È possibile utilizzare qualsiasi tipo di contenitore dati desiderato: questo sembra essere una struttura.
Per creare una matrice dinamica, si definisce un puntatore alla variabile dell'array. Questo atto colloca la variabile sull'heap, piuttosto che sullo stack. Quindi si crea l'array, che contiene tre voci Employee in questo caso. Il codice riempie i dati e quindi utilizza un ciclo per visualizzare i risultati sullo schermo. Ecco cosa dovresti vedere quando esegui l'esempio.
Visualizzazione del contenuto del contenuto dell'array: Harvey Età: 33 Nome: Sally Età: 26 Nome: Jeff Età: 52
Si noti che si accede ai singoli membri del Dipendente accedendo all'indice di array richiesto e quindi usando la sintassi del punto per specificare il nome del membro. È importante ricordare che l'array dinamico si comporta come qualsiasi altro array in quanto si accede a un indice per ottenere una voce specifica.
È essenziale utilizzare delete [] per liberare la memoria utilizzata da DynArray. In caso contrario, la tua applicazione presenterà una perdita di memoria che finirà per influenzare le prestazioni del sistema o almeno causerà cose divertenti. Poiché i nostri sistemi sono già abbastanza divertenti, è probabilmente una buona idea assicurarsi che l'applicazione non contribuisca al problema.