C 標(biāo)準(zhǔn)庫 - <stdlib.h>
C 庫函數(shù) void *calloc(size_t nitems, size_t size) 分配所需的內(nèi)存空間,并返回一個(gè)指向它的指針。malloc 和 calloc 之間的不同點(diǎn)是,malloc 不會(huì)設(shè)置內(nèi)存為零,而 calloc 會(huì)設(shè)置分配的內(nèi)存為零。
下面是 calloc() 函數(shù)的聲明。
void *calloc(size_t nitems, size_t size)
該函數(shù)返回一個(gè)指針,指向已分配的內(nèi)存。如果請(qǐng)求失敗,則返回 NULL。
下面的示例演示了 calloc() 函數(shù)的用法。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, n;
int *a;
printf("要輸入的元素個(gè)數(shù):");
scanf("%d",&n);
a = (int*)calloc(n, sizeof(int));
printf("輸入 %d 個(gè)數(shù)字:\n",n);
for( i=0 ; i < n ; i++ )
{
scanf("%d",&a[i]);
}
printf("輸入的數(shù)字為:");
for( i=0 ; i < n ; i++ ) {
printf("%d ",a[i]);
}
free (a); // 釋放內(nèi)存
return(0);
}讓我們編譯并運(yùn)行上面的程序,這將產(chǎn)生以下結(jié)果:
要輸入的元素個(gè)數(shù):3 輸入 3 個(gè)數(shù)字: 22 55 14 輸入的數(shù)字為:22 55 14