_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