_CrtCheckMemory
Confirma a integridade dos blocos de memória alocados no heap de depuração (somente versão de depuração).
Sintaxe
int _CrtCheckMemory( void );
Valor retornado
Se for bem-sucedido, _CrtCheckMemory
retorna TRUE
; caso contrário, a função retorna FALSE
.
Comentários
A função _CrtCheckMemory
valida a memória alocada pelo gerenciador de heap de depuração verificando o heap base subjacente e inspecionando todos os blocos de memória. Se for encontrado um erro ou uma inconsistência de memória no heap base subjacente, nas informações de cabeçalho de depuração ou nos buffers de substituição, _CrtCheckMemory
gerará um relatório de depuração com informações que descrevem a condição de erro. Quando _DEBUG
não está definido, as chamadas para _CrtCheckMemory
são removidas durante o pré-processamento.
O comportamento de _CrtCheckMemory
pode ser controlado definindo os campos de bits do _crtDbgFlag
sinalizador usando a _CrtSetDbgFlag
função. Ativar o _CRTDBG_CHECK_ALWAYS_DF
campo de bits resulta em _CrtCheckMemory
ser chamado sempre que uma operação de alocação de memória é solicitada. Embora esse método diminua a execução, ele é útil para detectar erros rapidamente. Desligar o _CRTDBG_ALLOC_MEM_DF
campo de bits faz com que _CrtCheckMemory
não se verifique o heap e retorne TRUE
imediatamente .
Como essa função retorna TRUE
ou FALSE
, ela pode ser passada para uma das macros para criar um mecanismo básico de tratamento de _ASSERT
erros de depuração. O seguinte exemplo causa uma falha de asserção se o dano é detectado no heap:
_ASSERTE( _CrtCheckMemory( ) );
Para obter mais informações sobre como _CrtCheckMemory
pode ser usado com outras funções de depuração, consulte Funções de relatório de estado de heap. Para obter uma visão geral do gerenciamento de memória e do heap de depuração, consulte Detalhes do heap de depuração do CRT.
Requisitos
Rotina | Cabeçalho necessário |
---|---|
_CrtCheckMemory |
<crtdbg.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Bibliotecas
Somente versões de depuração de bibliotecas de tempo de execução C.
Exemplo
Para encontrar um exemplo de como usar _CrtCheckMemory
, confira crt_dbg1
.