Gestiunea memoriei

În C++, memoria este împărțită în două zone principale: stack (stivă) și heap (grămadă).

StackHeap
AlocareAutomată (la declarare)Manuală (new/delete)
EliberareAutomată (la ieșire din scope)Manuală (delete)
DimensiuneLimitată (câțiva MB)Mare (GB)
VitezăRapidăMai lentă
Folosit pentruVariabile locale, parametriAlocare dinamică, obiecte mari
// Stack — automat
int x = 5;         // alocat pe stack, eliberat la }
int arr[1000];     // 4KB pe stack

// Heap — manual
int* p = new int(42);    // alocat pe heap
int* arr2 = new int[1000000];  // 4MB pe heap — OK
delete p;
delete[] arr2;   // eliberare obligatorie!
Memory leak: Dacă uiți delete, memoria rămâne ocupată pe toată durata programului. Folosește valgrind sau smart pointeri (unique_ptr) pentru a preveni leaks.