Freigeben über


AfxCheckMemory

Diese Funktion liest den freien Speicherpool und druckt Fehlermeldungen nach Bedarf.

BOOL AfxCheckMemory( );

Rückgabewert

Wert ungleich 0 (null) wenn keine Speicherfehler; 0 andernfalls.

Hinweise

Wenn die Funktion keine Speicherbeschädigungen erkennt, gibt dies nichts.

Alle Speicherblöcke, die derzeit auf dem Heap zugeordnet sind, werden, einschließlich die überprüft, die von neu zugeordnet werden, aber nicht die direkte Aufrufe, die vom zugrunde liegenden Speicherbelegungen, wie der malloc-Funktion oder der GlobalAlloc Windows-Funktion zugeordnet werden. Ist ein Block gefunden beschädigt werden, eine Meldung gedruckt wird zur Debuggerausgabe.

Wenn Sie die Zeile einfügen

#define new DEBUG_NEW

in einem Unterprogramm dann zeigen nachfolgende Aufrufe zu AfxCheckMemory die Dateinamen und Zeilennummer angegeben, in der der Speicher belegt wurde.

Hinweis

Wenn das Modul eine oder mehrere Implementierungen von serialisierbaren Klassen enthält, müssen Sie #define die Zeile nach dem letzten IMPLEMENT_SERIAL-Makro-Aufruf einfügen.

Diese Funktion funktioniert nur in der Debugversion von MFC.

Beispiel

CAge* pcage = new CAge(21);  // CAge is derived from CObject.
Age* page = new Age(22);     // Age is NOT derived from CObject.
*(((char*)pcage) - 1) = 99;   // Corrupt preceding guard byte
*(((char*)page) - 1) = 99;    // Corrupt preceding guard byte
AfxCheckMemory();

Anforderungen

Header: afx.h

Siehe auch

Konzepte

MFC-Makros, globale Funktionen und globale Variablen