Resúmenes
Apuntes universitarios en formato Markdown desde Obsidian.
Gestione della memoria
download Descargar MDIn questa sezione viene illustrato come le variabili vengono allocate in memoria (indirizzi) e come gestirle tramite puntatori.
Allocazione Statica e Indirizzi
Quando dichiariamo una variabile int a = 5;, il sistema scrive il valore 5 in uno specifico indirizzo di memoria (es. 0x3).
cout << a;stampa il valore (5).cout << &a;stampa l'indirizzo di memoria (0x3).
Array Statici: Dichiarando int b[5] = {1, 2, 3, 4, 5};, i valori vengono memorizzati in indirizzi contigui. Il nome dell'array b corrisponde all'indirizzo del primo elemento (0x1). Stampando &b[i] si ottengono gli indirizzi sequenziali degli elementi (es. 0x1, 0x2, 0x3...).
Allocazione Dinamica (Heap)
Per allocare memoria dinamicamente si usa l'operatore new.
- Array Dinamico:
int* b = new int[5];alloca un blocco di 5 interi. - Variabile Singola:
int* a = new int(1);crea un puntatore a un singolo intero inizializzato a 1.
Nota: La memoria allocata con
newdeve essere liberata manualmente condelete[] b(per array) odelete a(per variabili singole) per evitare memory leak.