_realloc_dbg
Realoca especificado um bloco de memória heap movendo e/ou redimensionando o bloco (versão de depuração somente).
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 anteriormente atribuído.newSize
Tamanho solicitado para o bloco realocado (bytes).blockType
O tipo solicitado para o bloco realocado: _CLIENT_BLOCK ou _NORMAL_BLOCK.filename
Ponteiro para o nome do arquivo de origem que solicitou a operação ou NULL de realloc .linenumber
Número de linha no arquivo de origem em que a operação de realloc foi solicitada ou NULL.
Os parâmetros de filename e de linenumber só estão disponíveis quando _realloc_dbg esteve chamado explicitamente ou a constante de pré-processador de _CRTDBG_MAP_ALLOC esteve definida.
Valor de retorno
Na conclusão com êxito, os essa função retornará um ponteiro para a parte do usuário do bloco de memória realocado, as chamadas a nova função de manipulador, ou retornará NULL. Para obter uma descrição completa de comportamento de retorno, consulte a seção comentários. Para obter mais informações sobre como a nova função de manipulador é usada, consulte a função de realloc .
Comentários
_realloc_dbg é uma versão de depuração da função de realloc . Quando _DEBUG não for definido, cada chamada a _realloc_dbg será reduzido para uma chamada a realloc. realloc e _realloc_dbg realocam um bloco de memória heap de base, mas _realloc_dbg acomode vários recursos de depuração: buffers em ambos os lados da parte do usuário do bloco para testar que ignora, um parâmetro em blocos para controlar tipos específicos de alocação, e filename/informações delinenumber determina a origem de solicitações de alocação.
_realloc_dbg realoca o bloco de memória especificado com um pouco mais espaço do que newSizesolicitado. newSize pode ser maior ou menor que o tamanho do bloco de memória alocada originalmente. O espaço adicional é usado pelo gerenciador de heap de depuração para vincular os blocos de memória de depuração e fornecer o aplicativo com informações de cabeçalho de depuração e para substituir os buffers. A redistribuindo pode resultar em mover o bloco de memória original para um local diferente no heap, assim como alterar o tamanho do bloco de memória. Se o bloco de memória é movido, o conteúdo do bloco original são substituídos.
_realloc_dbg define errno a ENOMEM se uma alocação de memória falhar ou se a quantidade de memória necessária (incluindo a sobrecarga mencionada anteriormente) excede _HEAP_MAXREQ. Para obter informações sobre esse 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 atribuídos, inicializados, e gerenciados na versão de depuração da heap de base, consulte Detalhes da pilha de depuração CRT. Para obter informações sobre o bloco de alocação digitar e como elas são usadas, consulte Tipos de blocos no heap de depuração. Para obter informações sobre as diferenças entre chamar uma função padrão do heap e sua versão de depuração em uma compilação de depuração de um aplicativo, consulte Versões de depuração das funções de alocação da pilha.
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
_realloc_dbg |
<crtdbg.h> |
Para obter mais informações sobre compatibilidade, consulte Compatibilidade na Introdução.
Bibliotecas
Versões de depuração das Bibliotecas em tempo de execução C somente.
Exemplo
Consulte o exemplo no tópico de _msize_dbg .
Equivalência do .NET Framework
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas.