Freigeben über


AfxCheckMemory

Diese Funktion untersucht den freien Speicherpool und bei Bedarf Fehlermeldungen ausgegeben.

BOOL AfxCheckMemory( );

Rückgabewert

Ungleich 0 (null), wenn keine Fehler im Arbeitsspeicher; andernfalls 0.

Hinweise

Wenn die Funktion keine Speicherschäden erkennt, gibt es keine Aktion aus.

Alle Speicherblöcke, die zur Zeit auf dem Heap zugeordnet sind, werden einschließlich der überprüft wird, die durch new zugeordnet sind, aber nicht von der Direktrufe zu den zugrunde liegenden Speicherbelegungsfunktionen, wie der malloc-Funktion oder der Funktion GlobalAlloc Windows zugeordnet sind.Falls eine beschädigte Block gefunden wird, wird eine Meldung mit der Debugger die Ausgabe ausgegeben wird.

Wenn Sie die Zeile einfügen

#define new DEBUG_NEW

Zeigen Sie in einem Unterprogramm nachfolgende Aufrufe von AfxCheckMemory den Dateinamen und die Zeilennummer, in der der Arbeitsspeicher belegt wurde.

HinweisHinweis

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

Diese Funktion wird 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 und -globale Werte