_free_dbg
Gibt einen Speicherblock im Heap frei (nur Debugversion).
Syntax
void _free_dbg(
void *userData,
int blockType
);
Parameter
userData
Zeiger zum belegten Speicherblock, der freigegeben werden soll.
blockType
Typ des belegten, freizugebenden Speicherblocks: _CLIENT_BLOCK
, _NORMAL_BLOCK
oder _IGNORE_BLOCK
.
Hinweise
Die _free_dbg
Funktion ist eine Debugversion der free
Funktion. Wenn _DEBUG
sie nicht definiert ist, wird jeder Anruf _free_dbg
auf einen Anruf reduziert free
. free
und _free_dbg
geben einen Speicherblock im Basisheap frei, jedoch hat _free_dbg
zwei Debugfunktionen: die Möglichkeit, freigegebene Blöcke in der verknüpften Liste des Heaps beizubehalten, um Speichermangel zu simulieren, und einen Blocktypparameter zum Freigeben bestimmter Belegungstypen.
_free_dbg
führt eine Gültigkeitsüberprüfung für alle angegebenen Dateien und Blockspeicherorte aus, bevor eine Freigabe erfolgt. Die Anwendung wird nicht erwartet, dass diese Informationen bereitgestellt werden. Wenn ein Speicherblock freigegeben wird, überprüft der Debug-Heap-Manager automatisch die Integrität der Puffer auf beiden Seiten des Benutzerteils. Es gibt einen Fehlerbericht aus, wenn ein Überschreiben erkannt wird. Wenn das _CRTDBG_DELAY_FREE_MEM_DF
Bitfeld der _crtDbgFlag
Kennzeichnung festgelegt ist, wird der freigegebene Block mit dem Wert 0xDD gefüllt, dem _FREE_BLOCK
Blocktyp zugewiesen und in der verknüpften Liste der Speicherblöcke des Heaps gespeichert.
Wenn bei der Freigabe des Speichers ein Fehler auftritt, wird errno
mit Informationen des Betriebssystems über die Art des Fehlers angegeben. Weitere Informationen finden Sie untererrno
, _doserrno
, _sys_errlist
und _sys_nerr
.
Informationen dazu, wie Speicherblöcke in der Debugversion des Basis heap zugeordnet, initialisiert und verwaltet werden, finden Sie unter CRT Debug Heap Details. Informationen zu den Zuordnungsblocktypen und deren Verwendung finden Sie unter "Typen von Blöcken" im Debug-Heap. Informationen zu den Unterschieden zwischen dem Aufrufen einer Standard-Heap-Funktion und der Debugversion finden Sie unter Debugversionen von Heap-Zuordnungsfunktionen.
Anforderungen
Routine | Erforderlicher Header |
---|---|
_free_dbg |
<crtdbg.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
Ein Beispiel für die Verwendung _free_dbg
finden Sie unter crt_dbg2
.