CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
calloc
calloc
Функция Выделяет оперативную память. Синтаксис #include <stdlib.h> void * calloc(size_t nitems, size_t size); Файл, содержащий stdlib.h,alloc.h прототип Описание calloc обеспечваеит доступ к динамической области памяти. Динамическая область памяти доступна для динамического распределения блоков памяти переменной длины. Многие структуры данных, например, деревья и списки, используют распределение динамической области памяти. Все пространство памяти между концом сегмента данных и верхушкой программного стека доступно для использования в моделях памяти small (tiny, small, medium), кроме небольшой области в самой верхней части стека. Это пространство необходимо для роста стека прикладной программы и плюс небольшая часть, используемая DOS. В моделях памяти типа large (compact, large, huge) все пространство за границей программного стека до конца физической памяти доступно для динамической области памяти. calloc выделяет блок памяти размером nitems x size. Блок обнуляется. Если вы хотите выделить блок, размер которого превышает 64К то нужно использовать функцию farcalloc. Возвращаемое calloc возвращает указатель на выделенный блок. значение calloc возвращает NULL, если недостаочно памяти для выделения нового блока, или nitems или size равны 0. Переносимость Поддерживается в системах UNIX и определена в ANSI C. Описана в Керниган и Риччи. Смотрите также faralloc, free, malloc, realloc. Пример: #include<stdio.h> #include<alloc.h> #include<string.h> int main(void) { char *str = NULL; /* выделить память для строки */ str = calloc(10,sizeof(char)); if(str) { /* скопировать в строку "Hello" */ strcopy(str,"Hello"); /* вывести строку */ printf("Строка : %s\n",str); /* освободить память */ free(str); } else { printf("Недостаточно памяти\n"); } return(0); }