_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
.