stdlib.h

calloc

Описание

void * calloc( size_t n, size_t size )

Функцията заделя n блока от по size байта и ги инициализира с нула. Връща указател към първия байт от заделените блокове.

Параметри

size_t n

Брой блокове.

size_t size

Броя на байтовете във всеки блок.

Връщани стойности

Функцията връща указател от тип void към заделената памет или NULL ако няма достатъчно памет.

Примери

от: adviser at cpp-examples dot com   Свали кода във файл
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. struct Name
  4. {
  5.  char first[20];
  6.  char second[20];
  7.  char last[20];
  8. };
  9. int main()
  10. {
  11.  Name *p = (Name*)calloc(10, sizeof(Name)); //заделя памет за 10 обектd от тип Name
  12.  if(p != NULL)
  13.  {
  14.   for(int i=0; i<10; i++)
  15.   {
  16.    scanf("%s %s %s", p[i].first, p[i].second, p[i].last);
  17.    printf("%s %s %s", p[i].first, p[i].second, p[i].last);
  18.   }
  19.   free(p);
  20.  }
  21.  return 0;
  22. }
от: adviser at cpp-examples dot com   Свали кода във файл
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5.  double *p = (double*)calloc(1, sizeof(double));
  6.  if(p)
  7.  {
  8.   printf("%lf", p); //Паметта е инициализирана с 0.
  9.   free(p);
  10.  }
  11.  return 0;
  12. }

Бележки

За да определите размера на дадена структура може да използвате оператора sizeof. Използването му прави кода машинно независим и преносим тъй като той ще работи правилно на машини с различна размерност на типовете.

Виж също

malloc - заделя памет
realloc - променя размера на предишно заделена памет
free - връща паметта на операционната система