全部博文(1293)
分类: C/C++
2013-01-28 14:28:57
1、calloc函数功能
calloc函数的功能与malloc函数的功能相似,都是从堆分配内存。函数声明如下:
void *calloc(int n,int size)
函数返回值为void型指针。
如果执行成功,函数从堆上获得size * n的字节空间,并返回该空间的首地址。如果失败,返回NULL。
该函数与malloc函数的一个显著区别是:calloc函数得到的内存空间是经过初始化的,其内容全为0。所以calloc函数适合为数组申请空间,可以将Size设置为数据元素的空间长度,将n设置为数据的空间。
2、案例分析
#include "stdafx.h" #include#define SIZE 10 int _tmain(int argc, _TCHAR* argv[]) { int *p = NULL; int i = 0; /* 从堆里分析SIZE个空间 */ p = (int *)calloc(SIZE,sizeof(int)); if (p == NULL) { printf("Error in calloc\\n"); return -1; } /* 给SIZE个空间赋值 */ for (i=0;i
需要注意的是,calloc分配的空间也需要自动释放。
上面注意到,一些没有被赋值的数组元素全部为0,证明了上面所提到的:
calloc函数得到的内存空间是经过初始化的,其内容全为0