malloc ve calloc işlevleri kullanılarak ayrılan bellek, kendi başlarına ayrılmaz. Bu nedenle, dinamik bellek tahsisi gerçekleştiğinde serbest yöntem kullanılır. Boş altarak bellek israfını az altmaya yardımcı olur.
Atanan bellek nasıl serbest bırakılır?
C'de, malloc kitaplığı işlevi, öbek üzerinde bir bellek bloğu tahsis etmek için kullanılır. Program, bu bellek bloğuna malloc'un döndürdüğü bir işaretçi aracılığıyla erişir. Belleğe artık ihtiyaç kalmadığında, işaretçi, başka amaçlar için kullanılabilmesi için belleği serbest bırakan free öğesine iletilir.
Atanan belleği boş altmazsanız ne olur?
Çoğu durumda, programdan çıkmadan hemen önce memory 'yi serbest bırakmak anlamsızdır. İşletim sistemi yine de geri alacaktır. Free ölü nesnelere dokunur ve sayfalar; işletim sistemi olmayacak. Sonuç: Tahsisleri sayan "sızıntı dedektörleri" konusunda dikkatli olun.
Bellek ayırmak pahalı mı?
Büyük bellek bloklarını ayırmanın ve serbest bırakmanın maliyetinin naif bir ölçümü, her tahsis/boş çift için yaklaşık 7,5 μs maliyeti olduğu sonucuna varır. Ancak büyük ayırmalar için MB başına üç ayrı maliyet vardır.
Atanan bellek alanını yeniden boş altabilir mi, evet ise nasıl?
Realloc işlevi, old_blk tarafından belirtilen bellek bloğunu aşağıdaki kurallara göre ayırır, yeniden tahsis eder veya serbest bırakır: old_blk NULL ise, bayt boyutunda yeni bir bellek bloğu dır-dirtahsis edildi. Boyut sıfırsa, old_blk ile gösterilen belleği serbest bırakmak için serbest işlev çağrılır.