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


_aligned_offset_realloc

Изменяет размер блока памяти, выделенного с _aligned_malloc или _aligned_offset_malloc.

Синтаксис

void * _aligned_offset_realloc(
   void *memblock,
   size_t size,
   size_t alignment,
   size_t offset
);

Параметры

memblock
Указатель текущего блока памяти.

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

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

offset
Смещение в выделение памяти для принудительного выполнения выравнивания.

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

_aligned_offset_realloc возвращает указатель void на перераспределенный (и, возможно, перемещенный) блок памяти. Возвращаемое значение имеет NULL значение, если размер равен нулю, и аргумент буфера не NULLявляется, или если недостаточно доступной памяти для расширения блока до заданного размера. В первом случае исходный блок освобождается. Во втором случае исходный блок не изменяется. Возвращаемое значение указывает на место хранения, подходящее для хранения любого типа объекта. Чтобы получить указатель на тип, отличный от void, используйте приведение типов для возвращаемого значения.

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

Замечания

Например _aligned_offset_malloc, _aligned_offset_realloc позволяет выровнять структуру по смещением в структуре.

Функция _aligned_offset_realloc основана на функции malloc. Дополнительные сведения об использовании _aligned_offset_malloc см. в разделе malloc. Если функция memblock имеет значение NULL, она вызывает _aligned_offset_malloc внутри системы.

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

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

Требования

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

Пример

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

См. также

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