20 Şubat 2018 Salı

free metodu

free
Kullanmak için şu dosya include edilir.
#include <stdlib.h>
Metodun imzası şöyle
void 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ız
volatile int* p = (volatile int*)malloc(5 * sizeof(int));
free(p);        // fail: 
free((int*)p);  // success
free((void*)p); // success
malloc_trim metodu
free()'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