Sobes.tech
Junior — Middle

Programda veri saklama için bellek yapısı nasıl organize edilmiştir?

sobes.tech yapay zeka

AI'dan gelen yanıt

iOS'te, bir programda veri depolama için bellek yapısı genellikle şu şekilde organize edilir:

  • Yığın (Stack): yerel değişkenleri ve fonksiyon çağrılarını tutar. Hızlı bellek tahsisi ve serbest bırakma.
  • Yığın (Heap): fonksiyon çağrısından daha uzun süre yaşayan nesne ve yapılar için dinamik bellek tahsisi.
  • Veri Segmenti: statik ve küresel değişkenler için.
  • Kod Segmenti: programın makine kodu için.

Örneğin, Swift veya Objective-C'de bir sınıf nesnesi oluşturduğunuzda, onun için bellek yığında tahsis edilir ve nesneye referans yığında tutulur. iOS'taki otomatik bellek yönetimi ARC (Automatic Reference Counting) ile gerçekleştirilir, bu da nesnelere olan referans sayısını izler ve artık gerekmediğinde belleği serbest bırakır.

Örnek:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}

func createPerson() {
    let person = Person(name: "Ivan") // nesne yığında, referans yığında
    print(person.name)
} // fonksiyondan çıkışta referans silinir, ARC nesneyi serbest bırakır eğer başka referans yoksa