_CrtCheckMemory

Conferma l'integrità dei blocchi di memoria allocati nell'heap di debug (solo per versione di debug).

Sintassi


int _CrtCheckMemory( void );

Valore restituito

Se ha esito positivo, _CrtCheckMemory restituisce TRUE; in caso contrario, la funzione restituisce FALSE.

Osservazioni:

La funzione _CrtCheckMemory convalida la memoria allocata dal gestore dell'heap di debug verificando l'heap di base sottostante e controllando ciascun blocco di memoria. Se si rileva un'incoerenza di memoria o un errore nell'heap di base sottostante, nelle informazioni sull'intestazione di debug o nei buffer di sovrascrittura, _CrtCheckMemory genera un report di debug con informazioni che descrivono la condizione di errore. Quando _DEBUG non è definito, le chiamate a _CrtCheckMemory vengono rimosse durante la pre-elaborazione.

Il comportamento di _CrtCheckMemory può essere controllato impostando i campi di bit del _crtDbgFlag flag usando la _CrtSetDbgFlag funzione . Se si attiva il _CRTDBG_CHECK_ALWAYS_DF campo di bit, viene _CrtCheckMemory chiamato ogni volta che viene richiesta un'operazione di allocazione della memoria. Anche se questo metodo rallenta l'esecuzione, è utile per rilevare rapidamente gli errori. Se si disattiva il campo di bit, _CrtCheckMemory l'heap _CRTDBG_ALLOC_MEM_DF non viene verificato e viene restituito TRUEimmediatamente .

Poiché questa funzione restituisce TRUE o FALSE, può essere passata a una delle _ASSERT macro per creare un meccanismo di base di gestione degli errori di debug. L'esempio seguente genera un errore di asserzione se il danneggiamento viene rilevato nell'heap:

_ASSERTE( _CrtCheckMemory( ) );

Per altre informazioni su come _CrtCheckMemory usare con altre funzioni di debug, vedere Funzioni di creazione di report sullo stato heap. Per una panoramica della gestione della memoria e dell'heap di debug, vedere Dettagli dell'heap di debug CRT.

Requisiti

Ciclo Intestazione obbligatoria
_CrtCheckMemory <crtdbg.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Librerie

Solo le versioni di debug delle librerie di runtime di C.

Esempio

Per un esempio di come usare _CrtCheckMemory, vedere crt_dbg1.

Vedi anche

Routine di debug
_crtDbgFlag
_CrtSetDbgFlag