calloc

来源:互联网 发布:淘宝搜一淘下单 编辑:程序博客网 时间:2024/05/29 10:09

calloc编辑

calloc是一个ISO C函数
函数名: calloc
函数原型:void *calloc(size_t n, size_t size);
功 能: 在内存的动态存储区中分配n个长度为size的连续空间,函数返回一个指向分配起始地址的指针;如果分配不成功,返回NULL。
外文名
calloc
函数名
 calloc
函数原型
void *calloc
功 能
动态存储中分配n为size连续空间
头文件
stdlib.h或malloc.h
相关函数
malloc、realloc、free  _alloca
领    域
编程

目录

1函数简介

2应用举例

 程序例1
 程序例2

1函数简介编辑

跟malloc的区别:
calloc在动态分配完内存后,自动初始化该内存空间为零,而malloc不初始化,里边数据是随机的垃圾数据。
用 法: void *calloc(size_t n, size_t size);
一般使用后要使用 free(起始地址的指针) 对内存进行释放,不然内存申请过多会影响计算机的性能,以至于得重启电脑。如果使用过后不清零,还可以使用指针对该块内存进行访问。
头文件:stdlib.h或malloc.h
相关函数:malloc、realloc、free _alloca

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。
0 0
原创粉丝点击