Ünite 02 / 03
Dinamik Bellek
Ayırma, sıfırlayarak ayırma ve yeniden boyutlandırma işlevleri, serbest bırakma sözleşmesinin başlık dosyasında belgelenmesi, bellek sızıntısının sayaç farkıyla ölçülmesi, bir aracın yakalayıp yakalamadığı, ve belleğin otomatik, statik ve dinamik alanlara bölünmesi.
Yayın Güncelleme
Dersler
- 01 Bellek Ayırma İşlevleri malloc, calloc, realloc ve free aynı öbekten çalışır ve dördü de aynı soruyu bırakır: ayırdığın bloğu kim bırakacak? Yanıt hep aynıdır — ayıran çağırandır; ders bunu sayaç farkıyla, sıfırlamayı doğrudan okuyarak, yeniden boyutlandırmayı ise eski sahipliğin değişmediğini göstererek ölçüyor. 11 dk okuma
- 02 Serbest Bırakma Disiplini Bir işlev bir metni döndürdüğünde, o metnin sahibinin kim olduğu imzada yazmaz — yazan, başlık dosyasındaki yorumdur. Aynı kaydı gösteren iki işlev, biri ödünç verip biri kopya döndürerek, aynı sözleşmenin iki farklı sahibe nasıl bağlanabildiğini gösteriyor. 11 dk okuma
- 03 Bellek Sızıntıları Bir bellek sızıntısı ne bir hata mesajı verir ne programı çökertir — yalnız ayrılan ile bırakılan arasındaki farkı büyütür. Ders iki yoldan sızıntı üretiyor, ikisini de sayaç farkıyla yakalıyor ve toplamın neden tam 2 çıktığını gösteriyor. 5 dk okuma
- 04 Bellek Hata Ayıklama Araçları Bir sızıntıyı elle sayaç tutarak bulmak gerçek bir programda mümkün değildir — bunu yapan bir araç çalıştırılır. Ders, kursun baştan beri kullandığı sayaçlı sarmalayıcının, böyle bir aracın yaptığı tek şeyi zaten modellediğini gösteriyor: her ayırmanın karşılığında bir bırakma var mı, yok mu. 10 dk okuma
- 05 Bellek Düzeni Bir programın belleği tek bir alan değildir; otomatik, statik ve dinamik olmak üzere ayrı bölgelere bölünür ve bir bloğun hangi bölgede durduğu, onun sahibinin kim olacağını baştan belirler. Ders dört dil gözlemini ayir ve birak gözlemiyle yan yana koyup bu ayrımı adres basmadan ölçüyor. 10 dk okuma