-
calloc
编辑
-
中文名
- 动态内存分配并清零 外文名
- clear allocation 函数名
- calloc 函数原型
- void *calloc
目录
与malloc的区别:
calloc在动态分配完内存后,自动初始化该内存空间为零,而
malloc不初始化,里边数据是随机的垃圾数据。
用 法:
void *calloc(size_t n, size_t size);
一般使用后要使用
free(起始地址的指针) 对内存进行释放,不然内存申请过多会影响计算机的性能,以至于得重启电脑。如果使用过后不清零,还可以使用指针对该块内存进行访问。
程序例1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int
main()
{
char
*str = NULL;
/*分配内存空间*/
str = (
char
*)
calloc
(10,
sizeof
(
char
));
/*将hello写入*/
strcpy
(str,
"Hello"
);
/*显示变量内容*/
printf
(
"String is %s\n"
,str);
/*释放空间*/
free
(str);
return
0;
}
|
程序例2
从这个例子可以看出calloc分配完存储空间后将元素初始化。
1
2
3
4
5
6
7
8
9
10
11
|
#include<stdio.h>
#include<stdlib.h>
int
main(){
int
i;
int
* pn = (
int
*)
calloc
(10,
sizeof
(
int
));
for
(i = 0;i < 10;i++)
printf
(
"%d"
, pn[i]);
printf
(
"\n"
);
free
(pn);
return
0;
}
|
输出十个0。
词条标签: