基本介紹
函式簡介,與malloc的區別:,用 法:,套用舉例,程式例1,程式例2,
函式簡介
與malloc的區別:
calloc在動態分配完記憶體後,自動初始化該記憶體空間為零,而malloc不初始化,裡邊數據是隨機的垃圾數據。
用 法:
void *calloc(size_t n, size_t size);
一般使用後要使用 free(起始地址的指針) 對記憶體進行釋放,不然記憶體申請過多會影響計算機的性能,以至於得重啟電腦。如果使用過後不清零,還可以使用指針對該塊記憶體進行訪問。
套用舉例
程式例1
#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ 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(){ int i; int* pn = (int*)calloc(10, sizeof(int)); for(i = 0;i < 10;i++) printf("%d", pn[i]); printf("\n"); free(pn); return 0;}
輸出十個0。