


Fonksiyonlarda Tutulan Belleği Anlamak
Bir işlev bağlamında "tutar", işlevin kullandığı belleği serbest bırakmadığı veya serbest bırakmadığı anlamına gelir. Bunun yerine, belleği tutar ve artık gerekmediğinde belleğin yerinin değiştirilmesinden sorumludur.
Başka bir deyişle, belleği tutan bir işlev, kullanımı bittikten sonra belleği yığına veya yığına geri döndürmez. Bu, işlevin belleğin ömrünü yönetmekten sorumlu olduğu anlamına gelir; bu belirli durumlarda yararlı olabilir ancak aynı zamanda bellek sızıntılarını önlemek için dikkatli bir yönetim gerektirir.
Örneğin, büyük bir veri yapısı için bellek ayıran ve ardından bir sonuç döndüren bir işlevi düşünün. arayana bu veri yapısını gösteren işaretçi. İşlev, artık ihtiyaç duyulmadığında belleği serbest bırakmazsa, bellek işlev tarafından tutulacak ve arayan kişi daha sonra belleğin yerinin değiştirilmesinden sorumlu olacaktır. Arayan kişi belleği serbest bırakmayı unutursa bu, bellek sızıntılarına yol açabilir.
Buna karşılık, yığında veya yığında tahsis edilen belleğe bir işaretçi döndüren ve daha sonra ihtiyaç duyulmadığında belleği serbest bırakan bir işlev (örn., ` malloc` ve `free`) belleği korumaz. İşlev onu kullanmayı bitirir bitirmez bellek yığına veya yığına geri gönderilir, böylece arayanın belleğin ömrünü yönetme konusunda endişelenmesine gerek kalmaz.



