calloc
编程函数
函数名: calloc
函数简介
与malloc的区别
calloc在动态分配完内存后,自动初始化该内存空间为零,而malloc不做初始化,分配到的空间中的数据是随机数据。其中malloc的简介如下:
用 法
void *calloc(size_t nmenb, size_t size);
calloc()函数为nmemb个元素的数组分配内存空间,其中,每个元素的长度都是size个字节。如果要求的空间无效,那么此函数返回指针。在分配了内存之后,calloc()函数会通过将所有位设置为0的方式进行初始化。比如,调用calloc()函数为n个整数的数组分配存储空间,且保证所有整数初始化为0:
pi = calloc(n, sizeof(int));
因为calloc()函数会清空分配的内存,而malloc()函数不会,所以可以调用以“1”作为第一个实参的calloc()函数,为任何类型的数据项分配空间。比如:
struct point{ int x, y;} *pi;
pi = calloc(1, sizeof(struct point));
在执行此语句后,pi将指向一个结构体,且此结构体的成员x和y都会被设为0。
一般使用后要使用 free(起始地址的指针) 对内存进行释放,不然内存申请过多会影响计算机的性能,以至于得重启电脑。如果使用过后不清零,还可以使用该指针对该块内存进行访问。
头文件:stdlib.h或malloc.h
相关函数:malloc、realloc、free _alloca
应用举例
程序例1
程序例2
从这个例子可以看出calloc分配完存储空间后将元素初始化。
输出十个0。
参考资料
最新修订时间:2022-08-25 17:18
目录
概述
函数简介
与malloc的区别
参考资料