Sobes.tech
Junior

Bellekte yığın nasıl kullanılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Yığın, yerel değişkenleri, fonksiyon parametrelerini ve dönüş adreslerini depolamak için kullanılır. Bellek, LIFO (Last-In, First-Out) ilkesiyle otomatik olarak tahsis edilir ve serbest bırakılır.

Heap (Yığın), derleme zamanında bilinmeyen veya oluşturuldukları kapsamı aşan nesneler için dinamik bellek tahsisi yapmak üzere kullanılır. Heap'teki bellek yönetimi manuel veya bellek yönetim mekanizmaları (Swift'te ARC, diğer dillerde çöp toplayıcı) ile gerçekleştirilir.

Özellik Yığın Yığın (Heap)
Tahsis Otomatik Dinamik (manuel veya MRC/ARC ile)
Serbest bırakma Kapsamdan çıkarken otomatik Manuel (free) veya MRC/ARC ile
Veri boyutu Derleme sırasında bilinen Çalıştırma zamanına kadar bilinmeyebilir
Erişim Hızlı, sıralı Daha yavaş, rastgele
Yapı LIFO Nesne grafiği
Örnekler Yerel değişkenler, fonksiyon parametreleri Sınıf nesneleri, değişken boyutlu yapılar
// Swift'te yığın ve heap kullanımı örneği

func myFunction() {
    // Yığında yerel değişken
    var stackVariable: Int = 10

    // Heap'te sınıf nesnesi
    let heapObject = MyClass()

    // Değer tipi yığında (referans tipi içermeyen yapılar hariç)
    var stackStruct = MyStruct()

    // Referans tipi içeren yapı, bir kısmı heap'te olabilir
    var mixedStruct = MyMixedStruct()
}

class MyClass {
    // Nesne özellikleri heap'te saklanır
    var property: String = "Hello"
}

struct MyStruct {
    // Değer tipi özellikleri yığında saklanır
    var property: Int = 20
}

class MyReferenceType {
    var value: Int = 30
}

struct MyMixedStruct {
    // Yığında değer tipi
    var stackProperty: Int = 40
    // Heap'te referans tipi (kendi referansı yığında)
    var heapReference: MyReferenceType = MyReferenceType()
}