_recalloc

Комбинация realloc и calloc.Reallocates массив в памяти и инициализирует его элементы до 0.

void *_recalloc( 
   void *memblock
   size_t num,
   size_t size 
);

Параметры

  • memblock
    Указатель к ранее выбранному блок памяти.

  • num
    Число элементов.

  • size
    Длина в байтах каждого элемента.

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

_recalloc возвращает a void указатель на reallocated (и, возможно, перемещена) блок памяти.

Если недостаточно свободной памяти, чтобы развернуть блок к заданному размеру, левые неизмененные и исходный блок NULL возвращает.

Если запрошенный размер равен нулю, то блок указал к которым следуют memblock освобождает; возвращаемое значение NULLи memblock левый указывать на освобоженном блоке.

Указывает возвращаемого значения к объему хранения, который гарантированно подходяще выравниваются для хранения любого типа объекта.Получить указатель на тип, отличный от voidиспользуйте приведение типов в возвращаемом значении.

Заметки

_recalloc изменения функции размер выделенного блока памяти.memblock указывает аргумента в начало блока памяти.If memblock существует NULL, _recalloc ведет себя таким же способом, как calloc и выделяет новый блок num * size байты.Каждый элемент инициализируется значением 0.If memblock нет NULLэто должен быть указателем возвращенный предыдущим вызовом метода calloc" mallocили realloc.

Поскольку новый блок может находиться в новом области памяти, указатель, _recalloc не гарантирует, что быть указателем на пропущенным memblock аргумент.

_recalloc наборы errno В ENOMEM, если выделение памяти завершается неудачей или, если объем памяти превышает требуемый _HEAP_MAXREQ.Дополнительные сведения об этом и других кодах ошибок см. в разделе errno, _doserrno, _sys_errlist и _sys_nerr.

recalloc вызовы realloc использование C++ _set_new_mode функция, чтобы установить новый режим ядра.Новый режим ядра, указывающее, является ли при ошибке realloc новая процедура вызова обработчика в виде набора by _set_new_handler.По умолчанию realloc не вызывает новую процедуру обработчика при сбое выделить память.Можно переопределить используемую по умолчанию применяются расширения функциональности так как при _recalloc не удалось выделить память. realloc вызывает новую процедуру обработчика тем же способом, new оператор делает, если он завершается ошибкой для этой же причине.Переопределить значения по умолчанию, вызов

_set_new_mode(1)

в начале программу или ссылка со NEWMODE.OBJ.

При связывании с отладочной версией библиотеки времени выполнения языка c, _recalloc позволяет к _recalloc_dbg.Дополнительные сведения об управляемой куче во время процесса отладки см. в разделах Куча отладки для CRT.

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

Требования

Процедура

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

_recalloc

<stdlib.h> и <malloc.h>

Дополнительные сведения о совместимости см. Совместимость во введении.

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

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

См. также

Ссылки

Выделение памяти

_recalloc_dbg

_aligned_recalloc

_aligned_offset_recalloc

free

Основные понятия

Параметры соединения