_CrtIsValidPointer
Verifica se um intervalo de memória especificado é válido para leitura e gravação (somente versão de depuração).
int _CrtIsValidPointer( const void *address, unsigned int size, int access );
Parâmetros
endereço
Aponta para o início do intervalo de memória para testar a validade.size
Tamanho do intervalo de memória especificado (em bytes).acesso
Acessibilidade de leitura/gravação para determinar o intervalo de memória.
Valor de retorno
_CrtIsValidPointer retorna TRUE se o intervalo de memória especificado for válido para a operação ou as operações especificadas. Caso contrário, a função retorna FALSE.
Comentários
A função _CrtIsValidPointer verifica se o intervalo de memória que começa em address e se estende para size bytes é válida para a operação ou as operações de acessibilidade especificadas. Quando access for definido como TRUE, o intervalo de memória é verificado para leitura e gravação. Quando access for FALSE, o intervalo de memória é validado somente para leitura. Quando _DEBUG não está definido, as chamadas a _CrtIsValidPointer são removidas durante o pré-processamento.
Como essa função retorna TRUE ou FALSE, ela pode ser informada a uma das macros de _ASSERT para criar um mecanismo de tratamento de erro de depuração simples. O exemplo a seguir causa uma falha de asserção se o intervalo de memória não for válido para as 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 e macros de depuração, 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 de base, consulte Detalhes da pilha 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
Consulte o exemplo do tópico _CrtIsValidHeapPointer.
Equivalência do .NET Framework
Não aplicável. Para chamar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.