Compartilhar via


_aligned_offset_realloc_dbg

Altera o tamanho de um bloco de memória que foi alocado com _aligned_malloc ou _aligned_offset_malloc (somente versão de depuração).

Sintaxe

void * _aligned_offset_realloc_dbg(
   void *memblock,
   size_t size,
   size_t alignment,
   size_t offset,
   const char *filename,
   int linenumber
);

Parâmetros

memblock
O ponteiro do bloco de memória atual.

size
O tamanho da alocação de memória.

alignment
O valor de alinhamento, que deve ser um inteiro elevado à segunda potência.

offset
O deslocamento na alocação de memória para forçar o alinhamento.

filename
Ponteiro para o nome do arquivo de origem que solicitou a aligned_offset_realloc operação ou NULL.

linenumber
Número da linha no arquivo de origem em que a aligned_offset_realloc operação foi solicitada ou NULL.

Valor retornado

_aligned_offset_realloc_dbg retorna um ponteiro nulo para o bloco de memória realocado (e possivelmente migrado). O valor retornado é NULL se o tamanho for zero e o argumento do buffer não NULLfor , ou se não houver memória disponível suficiente para expandir o bloco para o tamanho especificado. No primeiro caso, o bloco original é liberado. No segundo caso, ele permanece inalterado. O valor retornado aponta para um espaço de armazenamento que está adequadamente alinhado para armazenamento de qualquer tipo de objeto. Para obter um ponteiro para um tipo que não seja nulo, digite a conversão no valor retornado.

Comentários

_aligned_offset_realloc_dbg é uma versão de depuração da _aligned_offset_realloc função. Quando _DEBUG não estiver definido, cada chamada para _aligned_offset_realloc_dbg é reduzida a uma chamada para _aligned_offset_realloc. Ambos _aligned_offset_realloc e _aligned_offset_realloc_dbg realocam um bloco de memória no heap base, mas _aligned_offset_realloc_dbg acomoda vários recursos de depuração: buffers em ambos os lados da parte do usuário do bloco para testar vazamentos e filename/linenumber informações para determinar a origem das solicitações de alocação. O acompanhamento de tipos de alocação específicos com um parâmetro de tipo de bloco não é um recurso de depuração compatível com alocações alinhadas. As alocações alinhadas aparecerão como um tipo de _NORMAL_BLOCK bloco.

Como _aligned_offset_malloc, _aligned_offset_realloc_dbg permite que uma estrutura seja alinhada em um deslocamento dentro da estrutura.

_realloc_dbg realoca o bloco de memória especificado com um pouco mais de espaço que o newSize solicitado. newSize pode ser maior ou menor que o espaço do bloco de memória alocado originalmente. O espaço extra é usado pelo gerenciador de heap de depuração para vincular os blocos de memória de depuração e fornecer ao aplicativo informações de cabeçalho de depuração e buffers de substituição. A realocação pode mover o bloco de memória original para um local diferente no heap e também alterar o tamanho do bloco de memória. Se o bloco de memória for movido, o conteúdo do bloco original será substituído.

Essa função define errno como ENOMEM se a alocação da memória tiver falhado ou se o tamanho solicitado for maior que _HEAP_MAXREQ. Para obter mais informações sobre errno, consulte errno, _doserrno, _sys_errlist e _sys_nerr. Além disso, _aligned_offset_realloc_dbg valida seus parâmetros. Se alignment não for uma potência de 2 ou se offset for diferente de zero e maior ou igual a size, essa função invocará o manipulador de parâmetro inválido, conforme descrito em Validação de parâmetro. Se a execução puder continuar, essa função retornará NULL e definirá errno como EINVAL.

Para obter informações sobre como os blocos de memória são alocados, inicializados e gerenciados na versão de depuração do heap base, consulte Detalhes do heap de depuração do CRT. Para obter informações sobre os tipos de bloco de alocação e como eles são usados, consulte Tipos de blocos no heap de depuração. Para obter informações sobre as diferenças entre as funções de heap padrão e suas versões de depuração, consulte Depurar versões de funções de alocação de heap.

Requisitos

Rotina Cabeçalho necessário
_aligned_offset_realloc_dbg <crtdbg.h>

Para obter informações sobre compatibilidade, consulte Compatibilidade.

Bibliotecas

Somente versões de depuração de bibliotecas de tempo de execução C.

Confira também

Rotinas de depuração