Condividi tramite


AfxCheckMemory

Questa funzione convalida il pool di memoria e visualizza i messaggi di errore come richiesto.

BOOL AfxCheckMemory( );

Valore restituito

Diverso da zero se nessun errore di memoria; in caso contrario 0.

Note

Se la funzione non rileva danneggiamento della memoria, non visualizza alcuna operazione.

Tutti i blocchi di memoria attualmente allocati nell'heap vengono controllati, inclusi quelli allocati da new ma non quelli allocati dalle chiamate dirette all'utilizzo di allocatori di memoria sottostante, come la funzione di malloc o la funzione Windows di GlobalAlloc .Se un qualsiasi blocco viene trovato per essere danneggiato, un messaggio verrà visualizzato nell'output del debugger.

Se si include la riga

#define new DEBUG_NEW

in un modulo di programma, le chiamate successive a AfxCheckMemory mostrano il nome file e il numero di riga in cui è stata allocata la memoria.

[!NOTA]

Se il form contiene uno o più implementazioni di classi serializzabili, è necessario inserire una riga di #define dopo l'ultima chiamata di macro di IMPLEMENT_SERIAL .

Questa funzione viene eseguita solo nella versione di debug di MFC.

Esempio

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();

Requisiti

Header: afx.h

Vedere anche

Concetti

Macro MFC e Globals