Condividi tramite


_CrtCheckMemory

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

int _CrtCheckMemory( void );

Valore restituito

Se l'operazione riesce, _CrtCheckMemory restituisce TRUE; in caso contrario, la funzione restituisce FALSE.

Note

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 un'incoerenza di memoria o un errore viene rilevata nell'heap di base sottostante, le informazioni sull'intestazione di debug, o nei buffer sovrascritti, _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 definendo i campi di bit di flag _crtDbgFlag utilizzando la funzione _CrtSetDbgFlag. Attivando il campo di bit _CRTDBG_CHECK_ALWAYS_DF in _CrtCheckMemory risulta che viene chiamato ogniqualvolta viene richiesta un'operazione di allocazione della memoria. Sebbene questo metodo rallenti l'esecuzione, è utile per individuare gli errori rapidamente. Disattivando il campo di bit _CRTDBG_ALLOC_MEM_DF fa in modo che _CrtCheckMemory non verifichi l'heap e immediatamente restituisce TRUE.

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

_ASSERTE( _CrtCheckMemory( ) );

Per ulteriori informazioni su come _CrtCheckMemory può essere utilizzato da altre funzioni di debug, consultare Lo stato dell'heap che segnala le funzioni. Per una panoramica di gestione della memoria e heap di debug, consultare Informazioni dettagliate sull'heap di debug CRT.

Requisiti

Routine

Intestazione obbligatoria

_CrtCheckMemory

<crtdbg.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'introduzione.

Librerie

Solo versioni di debug di Librerie di runtime C.

Esempio

Per un esempio su come utilizzare _CrtCheckMemory, consultare crt_dbg1.

Equivalente .NET Framework

System::Diagnostics::PerformanceCounter

Vedere anche

Riferimenti

Routine di debug

_crtDbgFlag

_CrtSetDbgFlag