Aracılığıyla paylaş


free

Bellek bloğunu serbest bırakır veya serbest bırakır.

Sözdizimi

void free(
   void *memblock
);

Parametreler

memblock
Boşaltılacak daha önce ayrılmış bellek bloğu.

Açıklamalar

free işlevi, daha önce , mallocveya reallocçağrısı calloctarafından ayrılmış bir bellek bloğunu (memblock) serbest bırakır. Serbest bırakılan bayt sayısı, blok ayrıldığında istenen bayt sayısına eşdeğerdir (veya için reallocyeniden ayrılır). ise memblock NULL, işaretçi yoksayılır ve free hemen döndürür. Geçersiz bir işaretçiyi serbest bırakırken (, mallocveya realloctarafından callocayrılmamış bir bellek bloğu işaretçisi), sonraki ayırma isteklerini etkileyebilir ve hatalara neden olabilir.

Bellek boşaltılırken bir hata oluşursa, errno işletim sisteminden hatanın niteliğine ilişkin bilgilerle ayarlanır. Daha fazla bilgi için bkz. errno, _doserrno, _sys_errlistve _sys_nerr.

Bir bellek bloğu serbest bırakıldıktan sonra kullanılmayan _heapmin bölgeleri birleştirerek ve bunları işletim sistemine geri bırakarak yığındaki boş bellek miktarını en aza indirir. İşletim sisteminde serbest bırakılmamış bellek, boş havuza geri yüklenir ve yeniden ayırma için kullanılabilir.

Uygulama C çalışma zamanı kitaplıklarının hata ayıklama sürümüyle bağlandığında, free olarak _free_dbgçözümlenir. Yığın hata ayıklama işlemi sırasında nasıl yönetilir hakkında daha fazla bilgi için bkz . CRT hata ayıklama yığını.

free olarak işaretlenir __declspec(noalias), yani işlevin genel değişkenleri değiştirmemesi garanti edilir. Daha fazla bilgi için bkz. noalias.

ile _mallocaayrılan belleği boşaltmak için kullanın _freea.

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.

Gereksinimler

İşlev Gerekli başlık
free <stdlib.h> ve <malloc.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

örneğine mallocbakın.

Ayrıca bkz.

Bellek ayırma
_alloca
calloc
malloc
realloc
_free_dbg
_heapmin
_freea