calloc

calloc

calloc是一個ISO C函式

函式名: calloc

函式原型:void *calloc(size_t n, size_t size);

功 能: 在記憶體的動態存儲區中分配n個長度為size的連續空間,函式返回一個指向分配起始地址的指針;如果分配不成功,返回NULL。

n: Number of elements成員數量 size: Length in bytes of each element每個成員位元組長度

基本介紹

  • 中文名:動態記憶體分配並清零
  • 外文名:clear allocation
  • 函式名: calloc
  • 函式原型:void *calloc
  • 功 能動態存儲中分配n為size連續空間
  • 頭檔案stdlib.hmalloc.h
  • 相關函式mallocreallocfree  _alloca
  • 領域:編程
函式簡介,與malloc的區別:,用 法:,套用舉例,程式例1,程式例2,

函式簡介

與malloc的區別:

calloc在動態分配完記憶體後,自動初始化該記憶體空間為零,而malloc不初始化,裡邊數據是隨機的垃圾數據。

用 法:

void *calloc(size_t n, size_t size);
一般使用後要使用 free(起始地址的指針) 對記憶體進行釋放,不然記憶體申請過多會影響計算機的性能,以至於得重啟電腦。如果使用過後不清零,還可以使用指針對該塊記憶體進行訪問。
頭檔案:stdlib.hmalloc.h
相關函式:malloc、realloc、free _alloca

套用舉例

程式例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。

相關詞條

熱門詞條

聯絡我們