Compartilhar via


_recalloc_dbg

Realoca uma matriz e inicializa seus elementos como 0 (somente versão de depurar).

void *_recalloc_dbg( 
   void *userData,
   size_t num,
   size_t size,
   int blockType,
   const char *filename,
   int linenumber 
);

Parâmetros

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

  • num
    Número de blocos de memória solicitado.

  • size
    Solicitada dimensionar de cada bloco de memória (bytes).

  • blockType
    Tipo de bloco de memória solicitado: _CLIENT_BLOCK ou _NORMAL_BLOCK.

    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.

  • filename
    Ponteiro para o nome do arquivo de fonte que solicitou a operação de alocação ou NULL.

  • linenumber
    Linha número no arquivo de fonte onde a operação de alocação foi solicitada ou NULL.

The filename e linenumber parâmetros só estão disponível quando _recalloc_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 _recalloc função.

Comentários

_recalloc_dbg é uma versão de depurar das _recalloc função. Quando _DEBUG não estiver definido, cada telefonar para _recalloc_dbg é reduzido a uma telefonar para _recalloc. Ambos os _recalloc e _recalloc_dbg realocar um bloco de memória no heap de base, mas _recalloc_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.

_recalloc_dbg realoca o bloco de memória especificada com um pouco mais espaço que o dimensionar solicitado (num * size) que 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.A parte do usuário do bloco está preenchida com o valor 0xCD e cada um dos buffers de substituir são preenchidos com 0xFD.

In Visual C++ 2005, _recalloc_dbg Define errno para ENOMEM Se uma alocação de memória falha; EINVAL será retornado 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 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 as diferenças entre chamando uma função de heap padrão em vez de 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

_recalloc_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.

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