_CrtCheckMemory
Bestätigt die Integrität der Speicherblöcke, die im Debugheap zugeordnet werden (nur Debugversion).
int _CrtCheckMemory( void );
Rückgabewert
Bei Erfolg gibt _CrtCheckMemory den Wert TRUE zurück. Andernfalls gibt die Funktion FALSE zurück.
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 von _CrtCheckMemory kann gesteuert werden, indem die Bitfelder des _crtDbgFlag-Flags mithilfe der _CrtSetDbgFlag-Funktion festgelegt werden. Durch Aktivieren des _CRTDBG_CHECK_ALWAYS_DF-Bitfelds wird _CrtCheckMemory immer aufgerufen, wenn ein Speicherbelegungsvorgang angefordert wird. Obwohl diese Methode die Ausführung verlangsamt, ist sie nützlich, um Fehler schell zu erfassen. Durch Deaktivieren des _CRTDBG_ALLOC_MEM_DF-Bitfelds wird bewirkt, dass _CrtCheckMemory den Heap nicht überprüft und unverzüglich den Wert TRUE zurückgibt.
Da diese Funktion TRUE oder FALSE zurückgibt, kann sie an eine der _ASSERT-Makros übergeben werden, um einen einfachen Debug-Fehlerbehandlungsmechanismus zu erstellen. Im folgenden Beispiel wird ein Assertionsfehler ausgelöst, wenn eine Beschädigung im Heap erkannt wird:
_ASSERTE( _CrtCheckMemory( ) );
Weitere Informationen dazu, wie _CrtCheckMemory mit anderen Debugfunktionen verwendet werden kann, finden Sie unter Berichtsfunktionen für den Heapzustand. Eine Übersicht der Speicherverwaltung und des Debugheaps finden Sie unter Details zum CRT-Debugheap.
Anforderungen
Routine |
Erforderlicher Header |
---|---|
_CrtCheckMemory |
<crtdbg.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.
Bibliotheken
Nur Debugversionen von C-Laufzeitbibliotheken.
Beispiel
Ein Beispiel für die Verwendung von _CrtCheckMemory finden Sie unter crt_dbg1.
.NET Framework-Entsprechung
System::Diagnostics::PerformanceCounter