alloc是一个
ISO C函数

函数名: calloc
函数原型:void *calloc(unsigned n, unsigned size);
功 能: 在内存的 动态存储区中分配n个长度为size的连续空间,函数返回一个指向分配起始地址的 指针;如果分配不成功,返回NULL。

1函数简介

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

2应用举例

程序例1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include
#include
#include
 
int main( void )
{
     char *str = NULL;
    
     str = ( char *) calloc (10, sizeof ( char ));
    
     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
12
13
#include
#include
 
int main( void )
{
     int i;
     int *pn=( int *) calloc (10, sizeof ( int ));
     for (i=0;i<10;i++)
     printf ( "=" ,pn[i]);
     printf ( "\n" );
     free (pn);
     return 0;
}
输出十个0。
Logo

更多推荐