_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