Compartilhar via


_aligned_offset_recalloc

Altera o tamanho de um bloco de memória que foi alocado com _aligned_malloc or _aligned_offset_malloc e inicializa a memória para 0.

Sintaxe

void * _aligned_offset_recalloc(
   void *memblock,
   size_t num,
   size_t size,
   size_t alignment,
   size_t offset
);

Parâmetros

memblock
O ponteiro do bloco de memória atual.

number
Número de elementos.

size
O comprimento, em bytes, de cada elemento.

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_recalloc 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 nulo, digite a conversão no valor retornado.

_aligned_offset_recalloc é 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_recalloc permite que uma estrutura seja alinhada em um deslocamento dentro da estrutura.

_aligned_offset_recalloc 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 definirá errno como ENOMEM se a alocação de memória falhar ou se o tamanho solicitado (number * size) 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_recalloc 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 ao solicitado 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_recalloc <malloc.h>

Confira também

Alinhamento de dados
_recalloc
_aligned_recalloc