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


_aligned_offset_malloc

Размещение памяти на указанной границе выравнивания.

Синтаксис

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

Параметры

size
Размер запрошенного выделения памяти.

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

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и _sys_nerr. Кроме того, _aligned_offset_malloc проверяет свои параметры. Если alignment значение не равно 2, или offset если значение не равно нулю и больше или равно size, эта функция вызывает обработчик недопустимых параметров, как описано в разделе проверки параметров. Если продолжение выполнения разрешено, эта функция возвращает NULL и задает для errno значение EINVAL.

По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.

Требования

Маршрут Обязательный заголовок
_aligned_offset_malloc <malloc.h>

Пример

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

См. также

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