Compartilhar via


_aligned_offset_malloc

Aloca memória em um limite de alinhamento especificado.

Sintaxe

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

Parâmetros

size
Tamanho da alocação de memória solicitada.

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

Um ponteiro para o bloco de memória alocado ou NULL, se a operação tiver falhado.

Comentários

_aligned_offset_malloc é útil em situações em que o alinhamento é 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 é 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.

Essa função define errno como ENOMEM se a alocação da memória tiver falhado 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 for uma potência de 2 ou se offset for diferente de zero e maior ou igual a 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_malloc <malloc.h>

Exemplo

Para obter mais informações, consulte _aligned_malloc.

Confira também

Alinhamento de dados