函数:void* calloc(size_t num,size_t size); num为元素个数,size为每个元素的字节长度。
头文件 malloc.h
跟malloc的区别:
calloc在动态分配完内存后,自动初始化该内存空间为零,而malloc不初始化,里边数据是随机的垃圾数据。
头文件 malloc.h
在内存的动态存储区中分配n个长度为size的连续空间,函数返回一个指向分配起始地址的指针;如果分配不成功,返回NULL。
用于在取得一块数组空间,数组元素初始化为0.
一般使用后要使用 free(起始地址的指针) 对内存进行释放。跟malloc的区别:
calloc在动态分配完内存后,自动初始化该内存空间为零,而malloc不初始化,里边数据是随机的垃圾数据。
#include <stdio.h>//头文件
#include <stdlib.h>
#include <malloc.h>
using namespace std;
int main()
{
double* doub;
size_t size=16;
size_t num=5;
doub=(double*)calloc(num,sizeof(double));
for(int i=0;i<5;++i)
cout<<&doub[i]<<" "<<doub[i]<<endl;
free(doub);
return 0;
}