_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ó é FALSE
validado 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
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de