Compartilhar via


_aligned_offset_malloc

Aloca memória em um limite de alinhamento especificado.

void * _aligned_offset_malloc(
   size_t size, 
   size_t alignment, 
   size_t offset
);

Parâmetros

  • [entrada] size
    O tamanho da alocação de memória solicitada.

  • [entrada] alignment
    O valor de alinhamento, que deve ser uma potência de inteiro de 2.

  • [entrada] offset
    O deslocamento na alocação de memória para forçar o alinhamento.

Valor de retorno

Um ponteiro para o bloco de memória que foi atribuído a NULL ou se houve falha na operação.

Comentários

_aligned_offset_malloc é útil em situações em que o alinhamento será necessário em um elemento aninhado; por exemplo, se o alinhamento foi necessário em uma classe aninhada.

_aligned_offset_malloc é baseado em malloc; para obter mais informações, consulte malloc.

_aligned_offset_malloc é __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.

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

<malloc.h>

Exemplo

Para obter mais informações, consulte _aligned_malloc.

Consulte também

Referência

Alinhamento de dados