Sobes.tech
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