Freigeben über


_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 _CrtCheckMemoryfinden Sie unter crt_dbg1.

Siehe auch

Debugroutinen
_crtDbgFlag
_CrtSetDbgFlag