_freea
Zruší přidělení nebo uvolnění bloku paměti.
void _freea(
void *memblock
);
Parametry
- memblock
Dříve přidělen blok paměti, které má být uvolněno.
Vrácená hodnota
Žádný
Poznámky
_freea Funkce zruší přidělení blok paměti (memblock), již bylo přiděleno pomocí volání _malloca._freeazkontroluje, pokud bylo přiděleno paměť haldy nebo zásobníku.Pokud byla přidělena v zásobníku, _freea neprovede žádnou akci.Pokud byl přidělen na haldy, uvolněné bajtů je ekvivalentní počet bajtů po bloku byla přidělena.Pokud memblock je NULL, ukazatel je ignorován a _freea okamžitě vrátí.Pokus o neplatný ukazatel (ukazatel na blok paměti, která nebyla přidělena podle _malloca) může ovlivnit následné přidělování požadavků a způsobit chyby.
_freea volání free interně, pokud zjistí, že je přiděleno paměť haldy.Zda je paměť na haldy zásobníku je určena značky umístěny v paměti na adrese bezprostředně předcházejících přidělené paměti.
Pokud dojde k chybě v uvolnění paměti, errno je nastavena s informacemi z operačního systému na povaze chyby.Další informace naleznete v tématu errno, _doserrno, _sys_errlist, and _sys_nerr.
Po uvolnění bloku paměti _heapmin minimalizuje velikost volné paměti haldy coalescing nepoužívané oblastí a jejich uvolněním zpět do operačního systému.Uvolněné paměti, která není uvolněna na operační systém obnoven do fondu volných médií a je k dispozici pro přidělení znovu.
Volání _freea doprovází všechna volání _malloca.Je také při volání _freea dvakrát na stejnou paměť.Pokud je aplikace spojen s ladicí verzi C Runtime knihoven, zejména s _malloc_dbg definování funkcí _CRTDBG_MAP_ALLOC, je snazší najít chybějící nebo duplicitní volání na _freea.Další informace o způsobu je během ladění procesu správy haldy, viz The CRT ladění haldy.
_freeaje označena __declspec(noalias), což znamená, že funkce je zaručena upravit globální proměnné.Další informace naleznete v noalias.
Požadavky
Function |
Požadované záhlaví |
---|---|
_freea |
<stdlib.h> a <malloc.h> |
Další informace o kompatibilitě v tématu Compatibility v úvodu.
Příklad
Viz příklad pro _malloca.
Ekvivalent v rozhraní .NET Framework
Nelze použít Použijte volání funkce standardní C, PInvoke. Další informace naleznete v tématu Příklady vyvolat platformu.