函數簡介
函數名: calloc
功 能: 在內存的動態存儲區中分配n個長度爲size的連續空間,函數返回一個指向分配起始地址的指針;如果分配不成功,返回NULL。
跟malloc的區別:
calloc在動態分配完內存後,自動初始化該內存空間爲零,而malloc不初始化,裏邊數據是隨機的垃圾數據。
用 法: void *calloc(unsigned n,unsigned size);
頭文件:stdlib.h或malloc.h
應用舉例
程序例1:
#include <stdlib.h>
#include<string.h>
#include <stdio.h>
int main(void)
{
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分配完存儲空間後將元素初始化。
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int i;
int *pn=calloc(10,sizeof(int));
for(i=0;i<10;i++)
printf("%3d",*pn++);
printf("/n");
free(pn);
return 0;
}
輸出十個0。