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