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