Junior — Middle
Cum este organizată structura memoriei pentru stocarea datelor în program?
sobes.tech AI
Răspuns de la AI
În iOS, structura de memorie pentru stocarea datelor într-un program este de obicei organizată după cum urmează:
- Stivă (Stack): stochează variabile locale și apeluri de funcții. Alocare și eliberare rapidă a memoriei.
- Heap: alocare dinamică de memorie pentru obiecte și structuri care trăiesc mai mult decât apelul de funcție.
- Segmentul de date: pentru variabile statice și globale.
- Segmentul de cod: pentru codul mașină al programului.
De exemplu, atunci când creați un obiect de clasă în Swift sau Objective-C, memoria pentru acesta este alocată în heap, iar referința la obiect este stocată în stivă. Gestionarea automată a memoriei în iOS se realizează prin ARC (Automatic Reference Counting), care urmărește numărul de referințe la obiecte și eliberează memoria atunci când nu mai este necesară.
Exemplu:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
func createPerson() {
let person = Person(name: "Ivan") // obiect în heap, referință în stivă
print(person.name)
} // după ieșirea din funcție, referința este eliminată, ARC eliberează obiectul dacă nu există alte referințe