且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

calloc函数使用注意事项

更新时间:2022-08-14 18:27:55

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函数使用注意事项


需要注意的是,calloc分配的空间也需要自动释放。

上面注意到,一些没有被赋值的数组元素全部为0,证明了上面所提到的:

calloc函数得到的内存空间是经过初始化的,其内容全为0