Stack ve Heap Bellek
Coddy'nin C Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 31 / 63.
C programınız çalıştığında, belleğin iki farklı bölgesini kullanır: yığın ve öbek. Bu bellek bölgeleri arasındaki farkı anlamak, özellikle işaretçiler ve dinamik bellek ayırma ile çalışırken etkili C programlaması için çok önemlidir.
Yığın, statik bellek ayırma için kullanılır. Yerel değişkenlerinizin, işlev parametrelerinizin ve işlev çağrısı bilgilerinizin depolandığı yer burasıdır. Yığın sistem tarafından otomatik olarak yönetilir - yerel bir değişken bildirdiğinizde bellek yığın üzerinde 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.
Yığının 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 da getirir.
Temel fark yönetimdir: yığın belleği otomatiktir ve boyutu sınırlıdır, öbek belleği ise manueldir ve çok daha büyüktür. Gelecek derslerde, malloc() ve free() gibi işlevleri kullanarak öbek belleğiyle nasıl çalışacağınızı öğreneceksiniz.
Kendin dene
Bu ders bir kod alıştırması içermiyor.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık & Akış bölümündeki tüm dersler
1Pointer Temelleri
Pointer Nedir?Pointer TanımlamaAdres Operatörü (&)Dereference Operatörü (*)NULL Pointer'larÖzet: Pointer Temelleri4Proje: Basit Metin Aracı
Projeye Genel BakışKarakter Sayma2İşaretçiler ve Diziler
İşaretçi Olarak Dizi İsimleriDizi Elemanları - İşaretçilerİşaretçi Aritmetiğiİşaretçilerin KarşılaştırılmasıÖzet: İşaretçi ile Dizi Gezinme5İşaretçiler ve Fonksiyonlar
Değer ile GeçmeFonksiyonlara İşaretçi Göndermeİşaretçiler ile Değişkenleri DeğiştirmeKlasik Bir Örnek: SwapFonksiyonlara Dizi GöndermeÖzet: Fonksiyon İşaretçi Argümanları8Yapılar ve İşaretçiler
Yapılara İşaretçilerOk Operatörü (->)Yapıları Değer ile AktarmaYapı İşaretçilerini AktarmaYapıların Dinamik TahsisiÖzet: Yapıyı Değiştirme - Ptr11Son Tekrar Görevleri
Tekrar: Dinamik String BirleştirmeTekrar: Struct DizisiTekrar: Kelime Frekans Sayacı3Karakter Dizileri ve Stringler
char Dizisi Olarak StringlerNull Sonlandırıcıscanf ile String Girişistrlen() Kullanımıstrcpy() Kullanımıstrcat() Kullanımıstrcmp() KullanımıÖzet: Temel String FonksiyonlarıKendi başına pratik yap: Online C derleyicisi