【C语言】动态内存分配函数calloc
calloc——动态内存分配
头文件: # include<stdlib.h>
void * ( 要开辟的内存空间大小, 每个内存空间要申请的字节数 )
void * ( size_t num, size_t size )
注意:
- 函数的功能是为num个大小为size的元素开辟一块空间,并且把空间的每个字节初始化为0。
- 与函数malloc的区别只在于 calloc 会在返回地址之前把申请的空间的每个字节初始化为全0。
#include <stdio.h>
#include<stdlib.h>
#include<errno.h>
int main()
{
//申请40个字节,存放10个整型
int* p = (int*)calloc(10,sizeof(int));
if (p == NULL)
{
printf("%s", strerror(errno));
return 1;
}
//打印
int i = 0;
for (i = 0;i < 10;i++)
{
printf("%d ", *(p + i));
}
//free释放申请的内存
free(p);
p = NULL;
return 0;
}
输出:
0 0 0 0 0 0 0 0 0 0