當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。