free
Kullanmak için şu dosya include edilir.
free metodu hata olsa da olmasa da errno alanına değer atamak zorunda değildir.
free metodu silinene bellek alanını bir değer ile doldurmak zorunda değildir. Ancak Visual Studio debug sürümünde alana 0XCD yazar. Bu dile hexspeak deniliyor.
cast etmek
Metod void* aldığı için const, volatile vs. gibi tanımlanan değişkenleri cast etmek gerekir. Şöyle yaparız. Bence void*'a cast etmek en kolay çözüm.
free()'den sonra çağrılabilir. GNU extension metodudur. Açıklaması şöyle
Kullanmak için şu dosya include edilir.
#include <stdlib.h>
Metodun imzası şöylevoid free(void * p);
Açıklaması şöyle.The malloc and free functions use mutexes internally to ensure that heap is managed properly.free metodu defragmentatation'dan kaçınmak için bellek alanlarını birleştirir.
free metodu hata olsa da olmasa da errno alanına değer atamak zorunda değildir.
free metodu silinene bellek alanını bir değer ile doldurmak zorunda değildir. Ancak Visual Studio debug sürümünde alana 0XCD yazar. Bu dile hexspeak deniliyor.
cast etmek
Metod void* aldığı için const, volatile vs. gibi tanımlanan değişkenleri cast etmek gerekir. Şöyle yaparız. Bence void*'a cast etmek en kolay çözüm.
const float* velocity = malloc(2*sizeof(float));
free((float*)velocity);
Veya şöyle yaparızvolatile int* p = (volatile int*)malloc(5 * sizeof(int));
free(p); // fail:
free((int*)p); // success
free((void*)p); // success
malloc_trim metodufree()'den sonra çağrılabilir. GNU extension metodudur. Açıklaması şöyle
The malloc_trim() function attempts to release free memory at the top of the heap
Hiç yorum yok:
Yorum Gönder