Memorie & Referințe
new și delete
new alocă memorie pe heap și returnează un pointer. delete eliberează acea memorie.
new_delete.cpp
// Alocare unui singur element
int* p = new int(42);
cout << *p << endl; // 42
delete p; // eliberare
p = nullptr; // bună practică
// Alocare array
int n = 10;
int* arr = new int[n];
for (int i = 0; i < n; i++) arr[i] = i * i;
delete[] arr; // [] pentru array!Smart pointeri (C++11 — recomandat)
#include <memory>
auto p = make_unique<int>(42); // eliberat automat
cout << *p << endl; // 42
// nu ai nevoie de delete!În C++ modern, preferă
std::unique_ptr și std::shared_ptr în locul pointerilor raw. Gestionează automat memoria și previn memory leaks.