_aligned_offset_realloc
Altera o tamanho de um bloco de memória que é atribuído com _aligned_malloc ou _aligned_offset_malloc.
void * _aligned_offset_realloc(
void *memblock,
size_t size,
size_t alignment,
size_t offset
);
Parâmetros
memblock
O ponteiro atual do bloco de memória.size
O tamanho da alocação de memória.alignment
O valor de alinhamento, que deve ser uma potência de inteiro de 2.offset
O deslocamento na alocação de memória para forçar o alinhamento.
Valor de retorno
_aligned_offset_realloc retorna um ponteiro nulo (movido e possivelmente) no bloco de memória realocado. O valor de retorno é NULL se o tamanho for nulo e o argumento de buffer não é NULL, ou se não houver memória suficiente disponível para expandir o bloco ao tamanho especificado. No primeiro caso, o bloco original é liberado. No segundo caso, o bloco original permanece inalterado. O valor de retorno para um espaço de armazenamento que é garantia de ser alinhado adequadamente para o armazenamento de qualquer tipo de objeto. Para obter um ponteiro para um tipo diferente nulo, use uma conversão de tipos no valor de retorno.
_aligned_offset_realloc é __declspec(noalias) marcado e __declspec(restrict), o que significa que a função é garantia de não altere variáveis globais e que o ponteiro retornado não possui alias. Para obter mais informações, consulte noalias e restrinja.
Comentários
Como _aligned_offset_malloc, _aligned_offset_realloc permite que uma estrutura é alinhado em um deslocamento na estrutura.
_aligned_offset_realloc é baseado em malloc. Para obter mais informações sobre como usar _aligned_offset_malloc, consulte malloc. Se memblock é NULL, as chamadas de função _aligned_offset_malloc internamente.
Esta função define errno a ENOMEM se a alocação de memória falhou 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 é uma potência de 2 ou se offset é maior ou igual a size e diferente de zero, essa função invoca o manipulador inválido do parâmetro, conforme descrito em Validação do parâmetro. Se a execução puder continuar, essa função retornará NULL e definirá errno como EINVAL.
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
_aligned_offset_realloc |
<malloc.h> |
Exemplo
Para obter mais informações, consulte _aligned_malloc.