Memorie & Referințe
Adresa de memorie
Fiecare variabilă este stocată la o adresă de memorie specifică. Operatorul & returnează adresa unei variabile.
int x = 42;
cout << x << endl; // 42 (valoarea)
cout << &x << endl; // ex: 0x7ffd5e2a1b3c (adresa)
int y = x; // copiază valoarea
int& r = x; // r este alias pentru x (aceeași adresă)
cout << &x << endl; // aceeași adresă
cout << &r << endl; // aceeași adresă ca x!
cout << &y << endl; // adresă diferităDe ce contează adresele?
- Pointerii stochează adrese de memorie
- Pasarea prin referință/pointer evită copierea de date mari
- Structurile de date dinamice (liste, arbori) folosesc adrese
- Debugging:
valgrindșiAddressSanitizerdetectează erori de memorie