Какво е calloc в C?
В calloc () в С е функция се използва за разпределяне на няколко блока на паметта, имащи същия размер. Това е функция за динамично разпределение на паметта, която разпределя пространството на паметта към сложни структури от данни като масиви и структури и връща празен указател към паметта. Calloc означава непрекъснато разпределение.
Функцията Malloc се използва за разпределяне на единичен блок памет, докато функцията calloc в C се използва за разпределяне на множество блокове пространство памет. Всеки блок, разпределен от calloc в програмирането на C, е със същия размер.
calloc () Синтаксис:
ptr = (cast_type *) calloc (n, size);
- Горният пример за изявление на calloc в C се използва за разпределяне на n блокове памет със същия размер.
- След като мястото на паметта бъде разпределено, тогава всички байтове се инициализират до нула.
- Връща се указателят, който в момента е в първия байт от разпределеното пространство на паметта.
Винаги, когато възникне грешка при разпределянето на място в паметта, например недостиг на памет, тогава се връща нулев указател, както е показано в примера по-долу.
Как да използвам calloc
Долната програма за calloc в C изчислява сумата на аритметична последователност.
#includeint main() {int i, * ptr, sum = 0;ptr = calloc(10, sizeof(int));if (ptr == NULL) {printf("Error! memory not allocated.");exit(0);}printf("Building and calculating the sequence sum of the first 10 terms \ n ");for (i = 0; i < 10; ++i) { * (ptr + i) = i;sum += * (ptr + i);}printf("Sum = %d", sum);free(ptr);return 0;}
Резултат от calloc в пример C:
Building and calculating the sequence sum of the first 10 termsSum = 45