Compartilhar via


_CrtIsMemoryBlock

Verifica se um bloco de memória especificado está na pilha local e que ele tem um identificador de tipo de bloco do heap depurar válido (somente versão de depurar).

int _CrtIsMemoryBlock( 
   const void *userData,
   unsigned int size,
   long *requestNumber,
   char **filename,
   int *linenumber 
);

Parâmetros

  • userData
    Ponteiro para o início do bloco de memória para verificar.

  • size
    dimensionar do bloco especificado (em bytes) de.

  • requestNumber
    Ponteiro para o número de alocação de bloco ou NULO.

  • nome do arquivo
    Ponteiro para o nome do arquivo de fonte que solicitou o bloco ou NULO.

  • lineNumber
    Ponteiro para número de linha no arquivo de fonte ou NULO.

Valor de retorno

_CrtIsMemoryBlock Retorna VERDADEIRO se o bloco de memória especificado estiver localizado dentro do local de pilha e tem um identificador de tipo válido de depurar heap bloco; caso contrário, a função retornará falso.

Comentários

The _CrtIsMemoryBlock função verifica se um bloco de memória especificado está localizado dentro local do aplicativo heap e que ele possui um bloco válido de tipo de identificador. Essa função também pode ser usada para obter o número da ordem de alocação de objeto e o número de nome/linha do arquivo de fonte onde a alocação de bloco de memória foi originalmente solicitada.Passagem de valores não-nulo para o requestNumber, nome de arquivo, or lineNumber parâmetros de faz com que**_CrtIsMemoryBlock** Para conjunto esses parâmetros para os valores no cabeçalho de depurar do bloco de memória, se ele encontrar o bloco na pilha de local. Quando _DEBUG não estiver definido, chamadas de _CrtIsMemoryBlock serão removidos durante a pré-processamento.

Como essa função retorna verdadeiro ou falso, ele pode ser passado para um o _ASSERT macros para criar um simples mecanismo de tratamento de erro de depuração.O exemplo a seguir faz com que um erro de declaração se o endereço especificado não estiver localizado dentro de heap de local:

_ASSERTE( _CrtIsMemoryBlock( userData, size, &requestNumber, 
&filename, &linenumber ) );

Para obter mais informações sobre como _CrtIsMemoryBlock pode ser usado com outras funções de depurar e as macros, consulte Usando macros para verificação e emissão de relatórios.Para obter informações sobre como os blocos de memória são alocados, inicializado e gerenciado na versão de depurar do heap de base, consulte A pilha de depurar e gerenciamento de memória.

Requisitos

Rotina

Cabeçalho necessário

_CrtIsMemoryBlock

<crtdbg.h>

Para obter mais informações de compatibilidade, consulte Compatibilidade na introdução.

Bibliotecas

Versões de depurar de Bibliotecas de time de execução c somente.

Exemplo

Consulte o exemplo para o _CrtIsValidHeapPointer tópico.

Equivalente do NET Framework

Não aplicável. Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

Consulte também

Referência

Rotinas de depurar