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


_aligned_recalloc

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

void * _aligned_recalloc(
   void *memblock, 
   size_t num,
   size_t size, 
   size_t alignment
);

Параметры

  • [входящий] memblock
    Текущий указатель на блок памяти.

  • [входящий] num
    Количество элементов.

  • [входящий] size
    Размер в байтах каждого элемента.

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

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

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

Перераспределение памяти и изменение выравнивания блока является ошибкой.

Заметки

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

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

Требования

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

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

_aligned_recalloc

<malloc.h>

Эквивалент в .NET Framework

Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.

См. также

Ссылки

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

_recalloc

_aligned_offset_recalloc