Compartilhar via


_realloc_dbg

Realoca um bloco de memória na pilha de especificado por movendo e/ou redimensionar o bloco (somente versão de depurar).

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 alocado anteriormente.

  • newSize
    Solicitada dimensionar do bloco de realocada (bytes).

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

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

  • linenumber
    Número no arquivo de fonte da linha onde o realloc a operação foi solicitada ou nulo.

The filename e linenumber parâmetros só estão disponível quando _realloc_dbg tiver sido explicitamente chamado ou a _CRTDBG_MAP_ALLOC pré-processador constante foi definida.

Valor de retorno

Após a conclusão bem-sucedida, essa função ou retorna um ponteiro para a parte do usuário do bloco de memória realocada, chama a função de manipulador novo ou retorna nulo.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 realocar função.

Comentários

_realloc_dbg é uma versão de depurar das realocar função.Quando _DEBUG não estiver definido, cada telefonar para _realloc_dbg é reduzido a uma telefonar para realloc. Ambos os realloc e _realloc_dbg realocar um bloco de memória no heap de base, mas _realloc_dbg acomoda vários recursos de depuração: buffers em ambos os lados da parte do usuário do bloco para testar se há vazamentos, um bloco de parâmetro para controlar os tipos de alocação específica e de tipofilename/linenumber informações para determinar a origem de solicitações de alocação.

_realloc_dbg realoca o bloco de memória especificada com um pouco mais espaço que o solicitado newSize. newSize pode ser maior ou menor que o dimensionar do bloco de memória alocada originalmente. O espaço adicional é usado pelo Gerenciador de heap de depurar para vincular os blocos de memória de depurar e para fornecer o aplicativo com informações de cabeçalho de depurar e substituir os buffers.A realocação pode resultar em movimentar o bloco de memória original para um local diferente no heap, bem sistema autônomo alterar o dimensionar do bloco de memória.Se o bloco de memória for movido, o Sumário do bloco original foi substituído.

In Visual C++ 2005, _realloc_dbg Define errno para ENOMEM Se falhar uma alocação de memória ou se exceder a quantidade de memória necessária (incluindo a sobrecarga mencionada anteriormente) _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 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.Para obter informações sobre os tipos de bloco de alocação e como eles são usados, consulte Tipos de blocos no Heap depurar.Para obter informações sobre as diferenças entre chamar uma função de heap padrão e sua versão de depurar em uma compilação de depurar de um aplicativo, consulte Usando a versão de depurar e a versão base.

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 depurar de Bibliotecas de time de execução c somente.

Exemplo

Consulte o exemplo no _msize_dbg 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

_malloc_dbg