_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 NULL
for , 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.