Compartilhar via


_realloc_dbg

Realoca um bloco de memória no heap especificado por movendo e/ou redimensionar o bloco (somente a versão de depuração).

void *_realloc_dbg(
   void *userData,
   size_t newSize,
   int blockType,
   const char *filename,
   int linenumber 
);

Parâmetros

  • userData
    Ponteiro para o bloco de memória alocada anteriormente.

  • newSize
    Solicitada tamanho para o bloco realocado (bytes).

  • blockType
    Solicitou um tipo para o bloco realocado: _CLIENT_BLOCK ou _NORMAL_BLOCK.

  • filename
    Ponteiro para o nome do arquivo de origem que solicitou o realloc operação ou nulo.

  • linenumber
    O número no arquivo de origem de linha em que o realloc operação foi solicitada ou nulo.

O filename e linenumber parâmetros estão disponíveis somente quando _realloc_dbg foi chamado explicitamente ou o _CRTDBG_MAP_ALLOC pré-processador constante foi definida.

Valor de retorno

Após a conclusão bem-sucedida, esta função retorna um ponteiro para a parte do usuário do bloco de memória realocada, chama a função de manipulador de novo ou retorna NULL.Para obter uma descrição completa do comportamento de retorno, consulte a seção de comentários a seguir.Para obter mais informações sobre como a nova função de manipulador é usada, consulte o possível realocar função.

Comentários

_realloc_dbgé uma versão de depuração do possível realocar função.Quando _ Debug não está definido, cada chamada para _realloc_dbg é reduzido a uma chamada para realloc.Ambos realloc e _realloc_dbg realocar um bloco de memória na pilha de base, mas _realloc_dbg acomoda os vários recursos de depuração: buffers em ambos os lados da parte do bloco para testar se há vazamento, um parâmetro de tipo de bloco para controlar os tipos de alocação específica de usuário e filename/linenumber informações para determinar a origem de solicitações de alocação.

_realloc_dbgrealoca o bloco de memória especificada com um pouco mais espaço que o solicitado newSize.newSizepode ser maior ou menor que o tamanho do bloco de memória alocada originalmente.O espaço adicional é usado pelo Gerenciador de heap do debug para vincular os blocos de memória de depuração e para fornecer o aplicativo com informações de cabeçalho de depuração e sobrescrever os buffers.A realocação pode resultar em Mover o bloco de memória original para um local diferente na heap, bem como alterar o tamanho do bloco de memória.Se o bloco de memória for movido, o conteúdo do bloco original é substituído.

_realloc_dbgdefine errno para ENOMEM se uma alocação de memória falhar ou se a quantidade de memória necessária (incluindo a sobrecarga mencionada anteriormente) exceder _HEAP_MAXREQ.Para obter informações sobre este e outros códigos de erro, consulte errno, _doserrno, _sys_errlist e _sys_nerr.

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.Para obter informações sobre os tipos de bloco de alocação e como eles são usados, consulte Tipos de blocos no Heap Debug.Para obter informações sobre as diferenças entre chamar uma função de heap padrão e sua versão de depuração em uma compilação de depuração de um aplicativo, consulte usando a depurar versão na Base de versão.

Requisitos

Rotina

Cabeçalho necessário

_realloc_dbg

<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

Veja o exemplo de _msize_dbg 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

_malloc_dbg