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 );

Retornar valor

Se for bem-sucedido, retorna, caso contrário, _CrtCheckMemory a função retornará TRUEFALSE.

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 pode ser controlado definindo os campos de _CrtCheckMemory bit do _crtDbgFlag sinalizador usando a _CrtSetDbgFlag função. Ativar o _CRTDBG_CHECK_ALWAYS_DF campo de bits resulta em _CrtCheckMemory ser chamado toda vez que uma operação de alocação de memória é solicitada. Embora esse método retarde a execução, ele é útil para detectar erros rapidamente. Desativar o campo de bits faz com que _CrtCheckMemory não verifique o _CRTDBG_ALLOC_MEM_DF 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 erros de _ASSERT 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 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