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;}

为字符数组分配内存
另一个流行的 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