_free_dbg
Uvolní blok paměti v haldě (pouze ladicí verze).
Syntaxe
void _free_dbg(
void *userData,
int blockType
);
Parametry
userData
Ukazatel na přidělený blok paměti, který se uvolní.
blockType
Typ přiděleného paměťového bloku, který má být uvolněn: _CLIENT_BLOCK
, _NORMAL_BLOCK
nebo _IGNORE_BLOCK
.
Poznámky
Funkce _free_dbg
je ladicí verze free
funkce. Pokud _DEBUG
není definováno, každé volání _free_dbg
se sníží na volání free
. _free_dbg
Uvolnění free
bloku paměti v základní haldě, ale _free_dbg
vyhovuje dvěma funkcím ladění: schopnost ponechat uvolněné bloky v propojeném seznamu haldy pro simulaci podmínek nedostatku paměti a parametr typu bloku pro uvolnění konkrétních typů přidělení.
_free_dbg
provede kontrolu platnosti všech zadaných souborů a blokových umístění před provedením bezplatné operace. U aplikace se neočekává, že tyto informace poskytne. Když se uvolní blok paměti, správce haldy ladění automaticky zkontroluje integritu vyrovnávacích pamětí na obou stranách uživatelské části. Pokud zjistí přepsání, vydá zprávu o chybě. _CRTDBG_DELAY_FREE_MEM_DF
Pokud je nastavené bitové pole příznaku_crtDbgFlag
, uvolněný blok se vyplní hodnotou 0xDD, přiřadí _FREE_BLOCK
typ bloku a zůstane v propojeném seznamu bloků paměti haldy.
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_errlist
a _sys_nerr
.
Informace o přidělování, inicializaci a správě bloků paměti ve verzi ladění základní haldy naleznete v podrobnostech haldy ladění CRT. Informace o typech bloků přidělení a jejich použití najdete v tématu Typy bloků v haldě ladění. Informace o rozdílech mezi voláním standardní funkce haldy a ladicí verzí naleznete v tématu Ladění verzí funkcí přidělení haldy.
Požadavky
Rutina | Požadovaný hlavičkový soubor |
---|---|
_free_dbg |
<crtdbg.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Příklad
Ukázku použití _free_dbg
naleznete v tématu crt_dbg2
.