Freigeben über


_free_dbg

Gibt einen Speicherblock im Heap frei (nur Debugversion).

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 Funktion _free_dbg ist eine Debugversion der free-Funktion. Wenn _DEBUG nicht definiert ist, wird jeder Aufruf von _free_dbg zu einem Aufruf von free reduziert. 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 stellt diese Informationen wahrscheinlich nicht bereit. Wenn ein Speicherblock freigegeben wird, überprüft der Debugheapmanager automatisch die Pufferintegrität auf beiden Seiten des Benutzerteils und erstellt einen Fehlerbericht, falls über den Puffer hinaus geschrieben wurde. Wenn das Bitfeld _CRTDBG_DELAY_FREE_MEM_DF des _crtDbgFlag-Flags festgelegt ist, wird der freigegebene Block mit dem Wert "0xDD" gefüllt. Außerdem wird der _FREE_BLOCK-Blocktyp zugewiesen und in der verknüpften Liste des Heaps im Speicherblock beibehalten.

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 unter errno, _doserrno, _sys_errlist und _sys_nerr.

Informationen darüber, wie Speicherblöcke in der Debugversion des Basisheaps zugeordnet, initialisiert und verwaltet werden, finden Sie unter Details zum CRT-Debugheap. Weitere Informationen zu den Zuordnungsblocktypen und ihrer Verwendung finden Sie unter Blocktypen auf dem Debugheap. Weitere Informationen zu den Unterschieden zwischen dem Aufruf einer Standardheapfunktion und der Debugversion in einem Debugbuild einer Anwendung finden Sie unter Debugversionen von Heapreservierungsfunktionen.

Anforderungen

Routine

Erforderlicher Header

_free_dbg

<crtdbg.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.

Beispiel

Ein Beispiel für die Verwendung von _free_dbg finden Sie unter crt_dbg2.

.NET Framework-Entsprechung

Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Debugroutinen

_malloc_dbg