Compartilhar via


_aligned_offset_realloc

Altera o tamanho de um bloco de memória que foi alocado com _aligned_malloc ou _aligned_offset_malloc.

Sintaxe

void * _aligned_offset_realloc(
   void *memblock,
   size_t size,
   size_t alignment,
   size_t offset
);

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.

Valor retornado

_aligned_offset_realloc 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 indica 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 void, use uma conversão de tipo no valor retornado.

_aligned_offset_realloc é marcado __declspec(noalias) e __declspec(restrict), o que significa que a função tem a garantia de não modificar variáveis globais e que o ponteiro retornado não tem alias. Para obter mais informações, consulte noalias e restrict.

Comentários

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

_aligned_offset_realloc baseia-se em malloc. Para obter mais informações sobre o uso de _aligned_offset_malloc, consulte malloc. Se memblock é NULL, a função chama _aligned_offset_malloc internamente.

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

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.

Requisitos

Rotina Cabeçalho necessário
_aligned_offset_realloc <malloc.h>

Exemplo

Para obter mais informações, consulte _aligned_malloc.

Confira também

Alinhamento de dados