calloc

calloc

calloc是一個ISOC函數函數名。在內存的動態存儲區中分配n個長度為size的連續空間,函數返回一個指向分配起始地址的指針;如果分配不成功,返回NULL。一般使用后要使用 free(起始地址的指針) 對內存進行釋放,不然內存申請過多會影響計算機的性能,以至於得重啟電腦。如果使用過後不清零,還可以使用指針對該塊內存進行訪問。

應用舉例


程序例1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include
#include
intmain(void)
{
char*str=NULL;
str=(char*)calloc(10,sizeof(char));
strcpy(str,"Hello");
printf("Stringis%s\n",str);
free(str);
return0;
}

程序例2

從這個例子可以看出calloc分配完存儲空間后將元素初始化。
1
2
3
4
5
6
7
8
9
10
#include
#include
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。