CalCube()函数在C和C++中的分配内存

calloc() 函数用于C和C++编程语言,以便分配内存。 calloc() 函数用于为给定计数的给定变量类型分配内存。分配后,通过填充零来初始化分配的内存区域。

null

calloc()函数语法

calloc() 函数具有以下语法,其中它接受两个参数。

void* calloc (size_t COUNT, size_t VAR_SIZE);
  • `void*calloc`是返回void指针的函数名。指针将指向分配内存的开始位置。之所以选择它为void,是因为该区域可以存储不同类型的变量,如int、char、float等。
  • `size COUNT`用于设置给定变量大小要计数的元素数。
  • `size VARu size`用于设置单个元素的大小,通常是给定的变量大小。通常使用’size()`函数获取给定数据结构的变量大小。例如,“size(int)”将返回单个整数变量的大小。

使用calloc()分配内存

在这个例子中,我们将为5个整数分配内存。我们将通过从控制台读取并使用 printf() 功能。

/* calloc example */#include       /* printf, scanf, NULL */#include      /* calloc, exit, free */int main (){   int n;   int *ages;   ages = (int*) calloc (5,sizeof(int));   for (n=0;n<5;n++)   {      printf ("Enter number #%d: ",n+1);      scanf ("%d",&ages[n]);   }   printf ("You have entered: ");      for (n=0;n<5;n++) printf ("%d ",ages[n]);   return 0;}
Allocate Memory with calloc()
使用calloc()分配内存

为字符数组分配内存

另一个流行的 calloc() 函数为字符数组或字符串分配内存。

/* calloc example */#include       /* printf, scanf, NULL */#include      /* calloc, exit, free */int main (){   int n;   char *name;   name = (char*) calloc (30,sizeof(char));   printf("Please provide a name");   scanf("%s",name);   printf("Given name is %s",name);   return 0;}

释放分配的内存

通过使用calloc()函数,一些内存将被分配给给定的变量。但给定的内存区域在执行后不会自动释放。这也被称为内存管理,其中C语言和C++语言都不自动提供。所以我们应该使用 free() 函数,该函数将释放给定的变量内存区域。

/* calloc example */#include       /* printf, scanf, NULL */#include      /* calloc, exit, free */int main (){   int n;   char *name;   name = (char*) calloc (30,sizeof(char));   printf("Please provide a name");   scanf("%s",name);   printf("Given name is %s",name);   free(name);   return 0;}

malloc()函数与calloc()函数

malloc() 是一个用来分配内存的常用函数,我们也学到了这一点 calloc() 也用于分配内存。那两者有什么区别呢?这两个函数都将根据内存中给定的参数分配内存。但唯一的区别是malloc()函数不会用零填充分配的内存区域,而calloc()会用零填充分配的内存区域。

相关文章: 如何在Linux中获得Ram大小?

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享