Поделиться через


_aligned_offset_malloc

Выделяет память по определенной границе выравнивания.

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

Параметры

  • [входящий] size
    Размер запрошенного выделения памяти.

  • [входящий] alignment
    Значение выравнивания, которое должно быть целочисленной степенью двойки.

  • [входящий] offset
    Смещение в выделении памяти для обеспечения выравнивания.

Возвращаемое значение

Указатель на блок памяти, который был выделен, или NULL , если операция завершилась неудачно.

Заметки

_aligned_offset_malloc удобна, когда выравнивание необходимо во вложенном элементе; например, если выравнивание было необходимо во вложенном классе.

_aligned_offset_malloc основана на malloc; дополнительные сведения см. в разделе malloc.

_aligned_offset_malloc помечена __declspec(noalias) и __declspec(restrict), что означает, что функция гарантированно не изменит глобальные переменные, а для возвращаемого указателя не будет создан псевдоним. Дополнительные сведения см. в разделах noalias и restrict.

Эта функция устанавливает errno в значение ENOMEM, выделение памяти завершилось неудачно, или если запрошенный размер был больше _HEAP_MAXREQ. Дополнительные сведения о errno см. в разделе errno, _doserrno, _sys_errlist, and _sys_nerr. Кроме того, _aligned_offset_malloc проверяет свои параметры. Если alignment не степень двойки, или если offset больше или равно size и отлично от нуля, эта функция вызывает обработчик недопустимого параметра, как описано в разделе Проверка параметров. Если продолжение выполнения разрешено, эта функция возвращает NULL и устанавливает errno в значение EINVAL.

Требования

Подпрограмма

Обязательный заголовок

_aligned_offset_malloc

<malloc.h>

Пример

Дополнительные сведения см. в разделе _aligned_malloc

См. также

Ссылки

Выравнивание данных