C, bellek yönetimini yönetecek kadar verimlidir. Bu, C’de herhangi bir veri türünden düzenli bir değişken tanımladığınızda, programlama dilinin kendisinin, programınız yürütüldükten sonra bu belleği serbest bırakmaktan veya serbest bırakmaktan sorumlu olduğu anlamına gelir. başarılı. Bununla birlikte, dinamik bellek ayırma durumunda, belleği manuel olarak ayırdığınız için, kendiniz de serbest bırakmanız gerekir.
Bu amaca hizmet etmek için “stdlib.h” kitaplığında “free()” adlı özel bir işlev vardır. Bugün bu işlevi C programlama dilinde kullanma ihtiyacını keşfedeceğiz. Daha sonra, Linux’ta C programlama dilinde belleği manuel olarak serbest bırakmak için bu işlevi kullanmanın bazı örneklerine bakacağız.
Sistem belleğini boşaltmak için C’deki serbest işlevi kullanmanız gerekir:
Bilgisayar sistemlerimizin belleğinin sınırlı olduğunu hepimiz biliyoruz, bu nedenle içinde asla sonsuz program çalıştıramayız. Otomatik bellek tahsisi durumunda, programınızın yürütülmesi bittiğinde bilgisayar belleği boşaltmakla ilgilenir. Ancak stack’ten manuel olarak bellek tahsis ettiğimizde, onu bir şekilde serbest bırakmak zorundayız.
Aksi takdirde, sonunda belleğimiz tükenecek ve programlarımızı artık çalıştıramayacağız. “stdlib.h” kitaplığının “free()” işlevi burada devreye giriyor. Bu işlevi programın sonunda “return” ifadesinden hemen önce kullanırız, bu nedenle program sonlandırılmadan önce yığın belleğin bilgisayar sistemine döndürülmesi gerekir.
Özel olarak dinamik bellek tahsisi için C kodunuzu yazarken bu işlevi göz ardı ettiğinizi varsayalım. Bu durumda, belleğiniz tükeneceği için yığınınıza erişemeyeceğiniz bir nokta gelecek. Bu nedenle, dinamik bellek tahsisinin sorumluluğunu üstlendiğinizde, görünüşte daha az değerli olan bu işlevi asla unutmamalısınız.
C programlama dilinde “free()” fonksiyonunun genel sözdizimi aşağıdaki gibidir:
Geçersiz Bedava(Geçersiz *puan)
Burada “free()” fonksiyonundan önce gelen “void” anahtar kelimesi, bu fonksiyonun dönüş tipinin geçerli olmadığını gösterir. Köşeli parantez içindeki işaretçi, tahsis edilmesi gereken hafıza konumuna karşılık gelir. Bir sonraki bölüm, “free()” işlevinin C’de edinilen dinamik belleği boşaltmak için kullanıldığı bazı örnekleri açıklayacaktır.
C’de serbest işlevi kullanma örnekleri:
“free()” işlevi, “stdlib.h” kitaplığının üç bellek ayırma işleviyle, yani “malloc”, “calloc” ve “realloc” ile kullanılabilir. Bu işlevi kullanmak gereklidir. Programınızın temel fonksiyonlarını tanımladıktan sonra program çalışırken dinamik olarak ayırdığınız yığın belleği bilgisayarınıza aktarabilirsiniz. sistem. Şimdi ‘malloc’, ‘calloc’ ve ‘free()’ fonksiyonlarının C programlama dilinde kullanıldığı bazı örneklere bakalım.
Örnek 1: C’de “calloc” ile serbest fonksiyonu kullanmak:
“free()” fonksiyonunu “calloc()” fonksiyonu ile birlikte kullanmak için kullanılan C kodu aşağıdaki görselde paylaşılmıştır:
Bu kodun temel amacı, ‘calloc()’ işlevi yardımıyla dinamik olarak bir miktar bellek ayırmaktı. Bunun için dinamik belleğin boyutunu ve bu dinamik belleğin değerlerini kullanıcıdan girdi olarak aldık. Ardından elde edilen değerleri cihaza yazdırmayı hedefliyoruz. Tüm bu kodlardan sonra, C programımızın yürütülmesi nedeniyle ayrılan dinamik belleği boşaltacak olan “free()” işlevine sahibiz.
Aynı kodun biraz değiştirilmiş bir versiyonu da aşağıdaki resimde gösterilmektedir:
Bu değiştirilmiş sürümün amacı, manuel başlatmadan önce dinamik olarak ayrılmış bellek değerlerini yazdırmaktı. Calloc() işlevinin yürütme gerçekleşmeden önce tüm belleği sıfırlarla başlattığını biliyoruz. Ancak burada bu kodda dikkat edilmesi gereken asıl nokta, bu kod çok derli toplu ve basit olmasına rağmen “free()” fonksiyonu yine de istendiğinde bu C programını çalıştırmamız sonucunda elde ettiğimiz heap belleğin serbest bırakılmasıdır. işlev elde edilir. .
Örnek 2: C’de “malloc” ile free fonksiyonunu kullanmak:
“free()” fonksiyonunu “malloc()” fonksiyonu ile birlikte kullanmak için C kodu ekteki görselde paylaşılmıştır:
Bu kodun temel amacı, ‘malloc()’ işlevi yardımıyla dinamik olarak bir miktar bellek ayırmaktı. Bunun için ‘for’ döngüsünde bu dinamik belleğin değerlerini belirliyoruz. Ardından elde edilen değerleri başka bir ‘for’ döngüsü yardımıyla terminale yazdırmayı amaçladık. Tüm bu kodlardan sonra elimizde “return” ifadesinden önce C programımızın çalışması sonucunda ayrılan dinamik belleği serbest bırakacak bir “free()” fonksiyonumuz var.
Çözüm:
Bu makale, Linux’ta C programlama dilinde “free()” işlevini kullanmanın önemini vurguladı. Çoğu kullanıcı “stdlib.h” dosyasının özelleştirme işlevlerinin daha önemli olduğunu düşünür; Ancak, bu makaleyi inceleyerek, free() işlevinin eşit derecede önemli olduğunu açıkça görebilirsiniz. Bu, dinamik olarak edinilen belleği boşaltmanıza yardımcı olacak ve gelecekte programlarınızı çalıştırmayı denediğinizde belleğin asla bitmemesini sağlayacaktır.
Diğer gönderilerimize göz at
[wpcin-random-posts]
İlk Yorumu Siz Yapın