_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 TRUE
immediatamente .
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
.