Compartilhar via


_CrtIsValidPointer

Verifica se um ponteiro não é nulo. Em versões da biblioteca em tempo de execução C anteriores ao Visual Studio 2010, verifica se um intervalo de memória especificado é válido para leitura e gravação (somente versão de depuração).

Sintaxe

int _CrtIsValidPointer(
   const void *address,
   unsigned int size,
   int access
);

Parâmetros

address
Aponta para o início do intervalo de memória para testar a validade.

size
Tamanho do intervalo de memória especificado (em bytes).

access
Acessibilidade de leitura/gravação para determinar o intervalo de memória.

Retornar valor

_CrtIsValidPointer retorna TRUE se o ponteiro especificado não for nulo. Em versões de biblioteca CRT anteriores ao Visual Studio 2010, retorna TRUE se o intervalo de memória é válido para a operação ou operações especificadas. Caso contrário, a função retorna FALSE.

Comentários

Na biblioteca CRT no Visual Studio 2010 e versões posteriores, os parâmetros e são ignorados size e access_CrtIsValidPointer apenas verifica se o especificado address não é nulo. Como esse teste é fácil de ser executado, não recomendamos que você use essa função. Em versões anteriores ao Visual Studio 2010, a função verifica se o intervalo de memória que começa em address e se estende até size bytes é válido para as operações de acessibilidade especificadas. Quando access definido como TRUE, o intervalo de memória é verificado para leitura e gravação. Quando access é , o intervalo de memória só é FALSEvalidado para leitura. Quando _DEBUG não está definido, as chamadas para _CrtIsValidPointer são removidas durante o pré-processamento.

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 exemplo a seguir causa uma falha de asserção se o intervalo de memória não for válido para operações de leitura e gravação:

_ASSERTE( _CrtIsValidPointer( address, size, TRUE ) );

Para obter mais informações sobre como _CrtIsValidPointer pode ser usado com outras funções de depuração e macros, consulte Macros para relatórios. Para obter informações sobre como os blocos de memória são alocados, inicializados e gerenciados na versão de depuração do heap base, consulte Detalhes do heap de depuração CRT.

Requisitos

Rotina Cabeçalho necessário
_CrtIsValidPointer <crtdbg.h>

_CrtIsValidPointer é uma extensão da Microsoft. Para obter informações sobre compatibilidade, consulte Compatibilidade.

Bibliotecas

Somente versões de depuração de bibliotecas de tempo de execução C.

Exemplo

Veja o exemplo do _CrtIsValidHeapPointer artigo.

Confira também

Rotinas de depuração