Sdílet prostřednictvím


free

Uvolní nebo uvolní blok paměti.

Syntaxe

void free(
   void *memblock
);

Parametry

memblock
Dříve přidělený blok paměti, který se uvolní.

Poznámky

Funkce free uvolní blok paměti (memblock), který byl dříve přidělen voláním calloc, mallocnebo realloc. Počet uvolněných bajtů je ekvivalentní počtu bajtů požadovaných při přidělení bloku (nebo jeho přidělení).realloc Pokud memblock je NULL, ukazatel je ignorován a free okamžitě vrátí. Pokus o uvolnění neplatného ukazatele (ukazatel na blok paměti, který nebyl přidělen , callocmallocnebo realloc) může ovlivnit následné žádosti o přidělení a způsobit chyby.

Pokud dojde k chybě při uvolnění paměti, errno je nastaven s informacemi z operačního systému o povaze selhání. Další informace naleznete v tématu errno, _doserrno, _sys_errlista _sys_nerr.

Po uvolnění bloku paměti minimalizuje množství volné paměti na haldě tím, _heapmin že shodí nepoužívané oblasti a uvolní je zpět do operačního systému. Uvolněná paměť, která není uvolněna do operačního systému, se obnoví do bezplatného fondu a je k dispozici pro opětovné přidělení.

Pokud je aplikace propojena s ladicí verzí knihoven runtime jazyka C, free přeloží na _free_dbg. Další informace o správě haldy během procesu ladění naleznete v části Haldy ladění CRT.

free je označen , __declspec(noalias)což znamená, že funkce není zaručeno, že nebude upravovat globální proměnné. Další informace najdete na webu noalias.

Chcete-li uvolnit paměť přidělenou _mallocapomocí , použijte _freea.

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Požadavky

Function Požadovaný hlavičkový soubor
free <stdlib.h> a <malloc.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Příklad

Podívejte se na příklad pro malloc.

Viz také

Přidělení paměti
_alloca
calloc
malloc
realloc
_free_dbg
_heapmin
_freea