Menu
Coddy logo textTech

Stack ve Heap Bellek

Coddy'nin C Journey'sinin Logic & Flow bölümünün bir parçası — ders 31 / 63.

C programınız çalıştığında, iki farklı bellek bölgesi kullanır: stack ve heap. Bu bellek alanları arasındaki farkı anlamak, özellikle pointer'lar ve dinamik bellek tahsisi ile çalışırken etkili C programlama için kritik öneme sahiptir.

Yığın (stack), statik bellek ayırma için kullanılır. Yerel değişkenleriniz, fonksiyon parametreleriniz ve fonksiyon çağrısı bilgileriniz burada saklanır. Yığın, sistem tarafından otomatik olarak yönetilir; yerel bir değişken tanımladığınızda yığında bellek ayrılır ve değişken kapsam dışına çıktığında bu bellek otomatik olarak serbest bırakılır.

void function() {
    int x = 10;  // Yığın (stack) üzerinde ayrıldı
    char arr[100];  // Ayrıca yığın (stack) üzerinde ayrıldı
    // Fonksiyon sona erdiğinde bellek otomatik olarak serbest bırakılır
}

heap, dinamik bellek ayırma için kullanılır. Bu, program yürütme sırasında talep edebileceğiniz daha büyük bir bellek havuzudur.

Stack'in aksine, heap manuel yönetim gerektirir - belleği açıkça talep etmeli ve işiniz bittiğinde daha sonra serbest bırakmalısınız. Bu size daha fazla kontrol sağlar ancak aynı zamanda daha fazla sorumluluk yükler.

Temel fark yönetimdir: yığın (stack) belleği otomatiktir ve boyutu sınırlıdır, öbek (heap) belleği ise manueldir ve çok daha büyüktür. Gelecek derslerde, malloc() ve free() gibi fonksiyonları kullanarak öbek belleği ile nasıl çalışacağınızı öğreneceksiniz.

Kopya kağıdı

C programları iki farklı bellek bölgesi kullanır:

Stack (Yığın): Statik bellek tahsisi için kullanılır. Yerel değişkenleri, fonksiyon parametrelerini ve fonksiyon çağrısı bilgilerini saklar. Bellek otomatik olarak yönetilir - değişkenler tanımlandığında tahsis edilir ve kapsam dışına çıktıklarında serbest bırakılır.

void function() {
    int x = 10;  // Stack üzerinde tahsis edildi
    char arr[100];  // Ayrıca stack üzerinde tahsis edildi
    // Fonksiyon bittiğinde bellek otomatik olarak serbest bırakılır
}

Heap (Öbek): Dinamik bellek tahsisi için kullanılır. Manuel yönetim gerektiren daha büyük bir bellek havuzudur - malloc() ve free() gibi fonksiyonları kullanarak belleği açıkça talep etmeli ve serbest bırakmalısınız.

Temel fark: Stack belleği otomatiktir ve boyutu sınırlıdır, heap belleği ise manueldir ve çok daha büyüktür.

Kendin dene

Bu ders bir kod alıştırması içermiyor.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Logic & Flow bölümündeki tüm dersler