_aligned_offset_recalloc
Altera o tamanho de um bloco de memória que foi alocado com _aligned_malloc ou _aligned_offset_malloc e inicializa a memória a 0.
void * _aligned_offset_recalloc(
void *memblock,
size_t num,
size_t size,
size_t alignment,
size_t offset
);
Parâmetros
memblock
O ponteiro de bloco de memória atual.num
Número de elementos.size
Comprimento em bytes de cada elemento.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_recallocRetorna um ponteiro nulo para o bloco de memória realocada (e possivelmente movidos).O valor de retorno é NULL se o tamanho é zero e o argumento de buffer não é NULL, ou se não houver memória suficiente disponível para expandir o bloco para o tamanho.No primeiro caso, o bloco original é liberado.No segundo caso, o bloco original é inalterado.O valor de retorno aponta para um espaço de armazenamento que é garantido para ser devidamente alinhado para o armazenamento de qualquer tipo de objeto.Para obter um ponteiro para um tipo diferente de void, use uma conversão no valor de retorno de tipo.
_aligned_offset_recallocestá marcado como __declspec(noalias) e __declspec(restrict), que significa que a função é garantida que não modificar variáveis globais e que o ponteiro retornado não é com alias.Para obter mais informações, consulte noalias e restringir.
Comentários
Como _aligned_offset_malloc, _aligned_offset_recalloc permite que uma estrutura a ser alinhado em um deslocamento dentro da estrutura.
_aligned_offset_recallocse baseia em malloc.Para obter mais informações sobre como usar o _aligned_offset_malloc, consulte malloc.Se memblock é NULL, as chamadas de função _aligned_offset_malloc internamente.
Essa função define errno para ENOMEM se a alocação de memória falha ou se o tamanho solicitado (num * size) era maior do que _HEAP_MAXREQ.Para obter mais informações sobre o errno, consulte errno, _doserrno, _sys_errlist e _sys_nerr.Além disso, _aligned_offset_recalloc valida os seus parâmetros.Se alignment não é uma potência de 2 ou se offset é maior ou igual ao tamanho solicitado 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 terá permissão para continuar, esta função retorna NULL e define errno para EINVAL.
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
_aligned_offset_recalloc |
<malloc.h> |
Equivalência do .NET Framework
Não aplicável. Para chamar a função c padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.