_aligned_offset_recalloc
Изменяет размер блока памяти, выделенного или _aligned_malloc
_aligned_offset_malloc
инициализирует память на 0.
Синтаксис
void * _aligned_offset_recalloc(
void *memblock,
size_t num,
size_t size,
size_t alignment,
size_t offset
);
Параметры
memblock
Указатель текущего блока памяти.
number
Число элементов.
size
Длина каждого элемента в байтах.
alignment
Значение выравнивания, которое должно быть целой степенью числа 2.
offset
Смещение в выделение памяти для принудительного выполнения выравнивания.
Возвращаемое значение
_aligned_offset_recalloc
возвращает указатель void на перераспределенный (и, возможно, перемещенный) блок памяти. Возвращаемое значение имеет NULL
значение, если размер равен нулю, и аргумент буфера не NULL
является, или если недостаточно доступной памяти для расширения блока до заданного размера. В первом случае исходный блок освобождается. Во втором случае исходный блок не изменяется. Возвращаемое значение указывает на место хранения, подходящее для хранения любого типа объекта. Чтобы получить указатель на тип, отличающийся от void, используйте приведение типа для возвращаемого значения.
_aligned_offset_recalloc
помечается __declspec(noalias)
и __declspec(restrict)
означает, что функция гарантированно не изменяет глобальные переменные и что возвращаемый указатель не является псевдонимом. Дополнительные сведения см. в разделах noalias
и restrict
.
Замечания
Например _aligned_offset_malloc
, _aligned_offset_recalloc
позволяет выровнять структуру по смещением в структуре.
Функция _aligned_offset_recalloc
основана на функции malloc
. Дополнительные сведения об использовании _aligned_offset_malloc
см. в разделе malloc
. Если функция memblock
имеет значение NULL
, она вызывает _aligned_offset_malloc
внутри системы.
Эта функция задает для errno
значение ENOMEM
в случае сбоя выделения памяти, а также если запрошенный размер (number
* size
) был больше _HEAP_MAXREQ
. Дополнительные сведения о , см. в errno
разделеerrno
, _doserrno
_sys_errlist
и _sys_nerr
. Кроме того, _aligned_offset_recalloc
проверяет свои параметры. Если alignment
значение не равно 2, или offset
если значение не равно нулю и больше запрошенного size
, эта функция вызывает обработчик недопустимых параметров, как описано в разделе проверки параметров. Если продолжение выполнения разрешено, эта функция возвращает NULL
и задает для errno
значение EINVAL
.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Требования
Маршрут | Обязательный заголовок |
---|---|
_aligned_offset_recalloc |
<malloc.h> |