Sobes.tech
Junior — Middle

În ce loc din memorie se află primul element al array-ului într-un sistem de gestionare automată a memoriei?

sobes.tech AI

Răspuns de la AI

În C#, matricele sunt tipuri de referință și sunt plasate în heap-ul gestionat (managed heap). Primul element al matricei se află în memorie chiar după informațiile de serviciu ale matricei (de exemplu, lungimea).

Când creați o matrice, CLR alocă un bloc de memorie pe heap, unde mai întâi sunt stocate metadatele matricei, apoi elementele matricei în succesiune. Astfel, primul element al matricei se află la o adresă deplasată de la începutul blocului de memorie cu dimensiunea părții de serviciu.

Acest lucru permite accesul eficient la elementele matricei după index, deoarece elementele sunt stocate într-un bloc de memorie contiguu.

Exemplu:

int[] numbers = new int[] {1, 2, 3};
// numbers indică către un obiect pe heap unde sunt stocate elementele
int firstElement = numbers[0]; // acces la primul element