Sdílet prostřednictvím


_freea

Uvolní nebo uvolní blok paměti.

Syntaxe

void _freea(
   void *memblock
);

Parametry

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

Vrácená hodnota

Nezaokrouhlovat.

Poznámky

Funkce _freea uvolní blok paměti (memblock), který byl dříve přidělen voláním _malloca. _freea zkontroluje, jestli byla paměť přidělena na haldě nebo zásobníku. Pokud byl přidělen v zásobníku, _freea nic nedělá. Pokud byl přidělen na haldě, počet uvolněných bajtů odpovídá počtu bajtů požadovaným při přidělení bloku. Pokud memblock je NULL, ukazatel je ignorován a _freea okamžitě vrátí. Pokus o uvolnění neplatného ukazatele (ukazatel na blok paměti, který nebyl přidělen _malloca) může ovlivnit následné žádosti o přidělení a způsobit chyby.

_freea volá free interně, pokud zjistí, že paměť je přidělena na haldě. Ať už je paměť na haldě nebo zásobníku určená značkou umístěnou v paměti na adrese bezprostředně před přidělenou pamětí.

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í.

Hovor, ke kterému _freea musí být připojena všechna volání _malloca. Jedná se také o chybu, která volá _freea dvakrát ve stejné paměti. Když je aplikace propojena s ladicí verzí knihoven runtime jazyka C, zejména s funkcemi _malloc_dbg povolenými definováním _CRTDBG_MAP_ALLOC, je jednodušší najít chybějící nebo duplikovaná volání _freea. Další informace o správě haldy během procesu ladění naleznete v části Haldy ladění CRT.

_freea 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.

Požadavky

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

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

Příklad

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

Viz také

Přidělení paměti
_malloca
calloc
malloc
_malloc_dbg
realloc
_free_dbg
_heapmin