_aligned_offset_realloc
Altera o dimensionar de um bloco de memória que foi alocado com _aligned_malloc or _aligned_offset_malloc.
void * _aligned_offset_realloc(
void *memblock,
size_t size,
size_t alignment,
size_t offset
);
Parâmetros
memblock
O ponteiro de bloco de memória corrente.size
O dimensionar da alocação de memória.alignment
O valor de alinhamento, que deve ser uma potência inteira de 2.offset
O deslocamento para a alocação de memória para forçar o alinhamento.
Valor de retorno
_aligned_offset_realloc Retorna um ponteiro nulo para o bloco de memória realocada (e possivelmente movidos). O valor retornado é NULL Se o dimensionar é zero e não é o argumento de buffer NULL, ou se não houver memória suficiente disponível para expandir o bloco para determinado dimensionar. No primeiro caso, o bloco original é liberado.No segundo caso, o bloco original é inalterado.O valor retornado aponta para um espaço de armazenamento que é garantido a ser alinhado adequadamente para o armazenamento de qualquer tipo de objeto.Para obter um ponteiro para um tipo diferente de void, use um tipo convertido no valor retornado.
_aligned_offset_realloc está marcado como __declspec(noalias) e __declspec(restrict), que significa que a função tem a garantia não modificar variáveis global e que o ponteiro retornado não é com alias. Para obter mais informações, consulte noalias and restringir.
Comentários
Como _aligned_offset_malloc, _aligned_offset_realloc permite que uma estrutura a ser alinhado em um deslocamento dentro da estrutura.
_aligned_offset_realloc baseia-se em malloc. Para obter mais informações sobre como usar _aligned_offset_malloc, consulte malloc.If memblock é NULL, as chamadas de função _aligned_offset_malloc internamente.
In Visual C++ 2005, define essa função errno para ENOMEM Se a falha na alocação de memória ou se era maior do que o dimensionar solicitado _HEAP_MAXREQ. Para obter mais informações sobre o errno, consulte errno, _doserrno, _sys_errlist e _sys_nerr.Além disso, _aligned_offset_realloc valida os parâmetros. If alignment não é uma potência de 2 ou se offset é maior que ou igual a size e diferente de zero, essa função chama o manipulador de parâmetro inválido, conforme descrito em Validação de parâmetro. Se a execução for permitida para continuar, esta função retorna NULL e conjuntos errno para EINVAL.
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
_aligned_offset_realloc |
<malloc.h> |
Exemplo
Para obter mais informações, consulte _aligned_malloc.