_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_errlistund _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_dbgfinden Sie unter crt_dbg2.

Siehe auch

Debugroutinen
_malloc_dbg