calloc
Выбирает массив в памяти с инициализированные элементов до 0.
void *calloc(
size_t num,
size_t size
);
Параметры
num
Число элементов.size
Длина в байтах каждого элемента.
Возвращаемое значение
calloc возвращает указатель на выделенную пространстве.Гарантируется подходяще выравниваются объем памяти, заданный к возвращаемому значению для хранения любого типа объекта.Получить указатель на тип, отличный от voidиспользуйте приведение типов в возвращаемом значении.
Заметки
calloc функция выделяет объем памяти для массива num элементы, каждая из которых длины size байты.Каждый элемент инициализируется значением 0.
calloc наборы errno В ENOMEM, если выделение памяти завершается неудачей или, если объем памяти превышает требуемый _HEAP_MAXREQ.Дополнительные сведения об этом и других кодах ошибок см. в разделе errno, _doserrno, _sys_errlist и _sys_nerr.
calloc вызовы malloc использование C++ _set_new_mode функция, чтобы установить новый режим ядра.Новый режим ядра, указывающее, является ли при ошибке malloc новая процедура вызова обработчика в виде набора by _set_new_handler.По умолчанию malloc не вызывает новую процедуру обработчика при сбое выделить память.Можно переопределить используемую по умолчанию функциональности, что, когда calloc не удалось выделить память. malloc вызывает новую процедуру обработчика тем же способом, new оператор делает, если он завершается ошибкой для этой же причине.Переопределить значения по умолчанию, вызов
_set_new_mode(1)
в начале программу или ссылка со NEWMODE.OBJ (см. Параметры соединения).
При связывании с отладочной версией библиотеки времени выполнения c calloc позволяет к _calloc_dbg.Дополнительные сведения об управляемой куче во время процесса отладки см. в разделах Куча отладки для CRT.
calloc помечает __declspec(noalias) и __declspec(restrict), чтобы гарантированно изменяет функция глобальные переменные и присвоен псевдоним возвращенный указатель.Дополнительные сведения см. в разделе noalias и ограничьте.
Требования
Процедура |
Обязательный заголовок |
---|---|
calloc |
<stdlib.h> и <malloc.h> |
Дополнительные сведения о совместимости см. Совместимость во введении.
Пример
// crt_calloc.c
// This program uses calloc to allocate space for
// 40 long integers. It initializes each element to zero.
#include <stdio.h>
#include <malloc.h>
int main( void )
{
long *buffer;
buffer = (long *)calloc( 40, sizeof( long ) );
if( buffer != NULL )
printf( "Allocated 40 long integers\n" );
else
printf( "Can't allocate memory\n" );
free( buffer );
}
Эквивалент в .NET Framework
Неприменимо. Для c# используйте стандартная функция PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.