当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C语言 calloc用法及代码示例


C语言stdlib头文件(stdlib.h)中calloc函数的用法及代码示例。

用法:

void* calloc (size_t num, size_t size);
分配和zero-initialize阵列
为一个数组分配一块内存num元素,每个元素size字节长,并将其所有位初始化为零。

有效的结果是分配了一个zero-initialized个存储块(num*size)个字节。

如果size为零,则返回值取决于特定的库实现(它可能是也可能不是空指针),但不得取消对返回的指针的引用。

参数

num
要分配的元素数。
size
每个元素的大小。

size_t是无符号整数类型。

返回值

成功时,将指向该函数分配的内存块的指针。
该指针的类型始终为void*,可以将其强制转换为所需的数据指针类型,以便将其取消引用。
如果函数未能分配请求的内存块,则空指针返回。

示例

/* calloc example */
#include <stdio.h>      /* printf, scanf, NULL */
#include <stdlib.h>     /* calloc, exit, free */

int main ()
{
  int i,n;
  int * pData;
  printf ("Amount of numbers to be entered: ");
  scanf ("%d",&i);
  pData = (int*) calloc (i,sizeof(int));
  if (pData==NULL) exit (1);
  for (n=0;n<i;n++)
  {
    printf ("Enter number #%d: ",n+1);
    scanf ("%d",&pData[n]);
  }
  printf ("You have entered: ");
  for (n=0;n<i;n++) printf ("%d ",pData[n]);
  free (pData);
  return 0;
}


该程序只存储数字,然后将其打印出来。但是它存储的项数可以在每次执行程序时修改,因为它会在运行时分配所需的内存。



相关用法


注:本文由纯净天空筛选整理自C标准库大神的英文原创作品 C calloc function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。