Compartilhar via


_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 TRUEimediatamente .

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.

Confira também

Rotinas de depuração
_crtDbgFlag
_CrtSetDbgFlag