Compartilhar via


_CrtIsMemoryBlock

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

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

Parâmetros

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

  • [in]size
    Tamanho do bloco especificado (em bytes).

  • [out]requestNumber
    Ponteiro para o número de alocação do bloco ou NULL.

  • [out]filename
    Ponteiro para o nome do arquivo de origem que solicitou o bloco ou NULL.

  • [out]linenumber
    Ponteiro para o número da linha no arquivo de origem ou NULL.

Valor de retorno

_CrtIsMemoryBlockRetorna TRUE se o bloco de memória especificado está localizado na pilha local e tem um identificador de tipo de bloco de heap de depuração válido; Caso contrário, a função retornará FALSE.

Comentários

O _CrtIsMemoryBlock função verifica que um bloco de memória especificado está localizado na pilha de local do aplicativo e que ele tem um identificador de tipo válido de bloco.Esta função também pode ser usada para obter o número de pedido de alocação de objeto e o número de linha/nome do arquivo de origem onde a alocação de bloco de memória foi originalmente solicitada.Passando os valores nulos para o requestNumber, filename, ou linenumber causas de parâmetros _CrtIsMemoryBlock para definir esses parâmetros para os valores no cabeçalho de depuração do bloco de memória, se encontra o bloco na pilha de local.Quando _ Debug não está definido, planos de _CrtIsMemoryBlock são removidos durante o pré-processamento.

Se _CrtIsMemoryBlock falhar, ele retorna FALSE e os parâmetros de saída são inicializados com valores padrão: requestNumber e lineNumber são definidos como 0 e filename for definido como NULL.

Esta função retorna TRUE ou FALSE, ele pode ser passado para uma da _ASSERT macros para criar um simples mecanismo de tratamento de erros de depuração.O exemplo a seguir faz com que um erro de declaração se o endereço especificado não está localizado na pilha local:

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

Para obter mais informações sobre como _CrtIsMemoryBlock pode ser usado com outras funções de depuração e a macros, consulte Usando Macros para verificação e emissão de relatórios.Para obter informações sobre como blocos de memória são alocados, inicializados e gerenciados na versão de depuração da pilha base, consulte Gerenciamento de memória e a pilha de depuração.

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 depuração de bibliotecas de tempo de execução c somente.

Exemplo

Consulte o exemplo para o _CrtIsValidHeapPointer tópico.

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.

Consulte também

Referência

Rotinas de depuração