_CrtCheckMemory
Bestätigt die Integrität der Speicherblöcke, die im Debugheap zugeordnet werden (nur Debugversion).
Syntax
int _CrtCheckMemory( void );
Rückgabewert
Wenn die Funktion erfolgreich verläuft, _CrtCheckMemory
wird zurückgegeben TRUE
; andernfalls wird die Funktion zurückgegeben FALSE
.
Hinweise
Die _CrtCheckMemory
-Funktion überprüft den vom Debugheapmanager belegten Speicher, indem der zugrunde liegende Basisheap überprüft und jeder Speicherblock untersucht wird. Wenn im zugrunde liegenden Basisheap, in den Debugheaderinformationen oder den Überschreibungspuffern Fehler oder Speicherinkonsistenzen auftreten, generiert _CrtCheckMemory
einen Debugbericht mit Informationen, die die Fehlerbedingung beschreiben. Wenn _DEBUG
nicht definiert ist, werden Aufrufe von _CrtCheckMemory
während der Vorverarbeitung entfernt.
Das Verhalten _CrtCheckMemory
kann gesteuert werden, indem die Bitfelder der Kennzeichnung mithilfe der _crtDbgFlag
_CrtSetDbgFlag
Funktion festgelegt werden. Das Aktivieren des _CRTDBG_CHECK_ALWAYS_DF
Bitfelds ON führt dazu _CrtCheckMemory
, dass jedes Mal aufgerufen wird, wenn ein Speicherzuweisungsvorgang angefordert wird. Obwohl diese Methode die Ausführung verlangsamt, ist es nützlich, Fehler schnell abzufangen. Wenn Sie das Bitfeld AUS deaktivieren, wird _CrtCheckMemory
der _CRTDBG_ALLOC_MEM_DF
Heap nicht überprüft und sofort zurückgegebenTRUE
.
Da diese Funktion zurückgibt TRUE
oder FALSE
, kann sie an eines der _ASSERT
Makros übergeben werden, um einen grundlegenden Fehlerbehandlungsmechanismus für das Debuggen zu erstellen. Im folgenden Beispiel wird ein Assertionsfehler ausgelöst, wenn eine Beschädigung im Heap erkannt wird:
_ASSERTE( _CrtCheckMemory( ) );
Weitere Informationen zur _CrtCheckMemory
Verwendung mit anderen Debugfunktionen finden Sie unter Heap-Statusberichtsfunktionen. Eine Übersicht über die Speicherverwaltung und den Debug-Heap finden Sie unter CRT debug heap details.
Anforderungen
Routine | Erforderlicher Header |
---|---|
_CrtCheckMemory |
<crtdbg.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Libraries
Nur Debugversionen von C-Laufzeitbibliotheken
Beispiel
Ein Beispiel für die Verwendung _CrtCheckMemory
finden Sie unter crt_dbg1
.