用calloc 函式分配記憶體

2021-05-01 17:45:12 字數 541 閱讀 8198

用calloc()函式分配記憶體

calloc函式原型:

void  *calloc(size_t  num_elements, size_t  element_size);

在標頭檔案中宣告的calloc()函式與malloc()函式相比有兩個優點。第一,它把記憶體分配為給定大小的陣列,第二,它初始化了所分配的記憶體,所有的位都是0。calloc()函式需要兩個引數:陣列的元素個數和陣列元素占用的位元組數,這兩個引數的型別都是size_t。該函式也不知道陣列元素的型別,所以所分配區域的位址返回為void *型別。

下面的語句使用calloc()為包含75個int元素的陣列分配記憶體:

int *p = ( int  *) calloc(75, sizeof( int ) );

如果不能分配所請求的記憶體,返回值就是null,也可以檢查分配記憶體的結果,這非常類似於malloc(),但calloc()分配的記憶體區域都會初始化為0。

總結:這個初始化常常能帶來方便,也直觀,但是,如果程式只想把一些值儲存到陣列中,那麼這個初始化純屬浪費時間!

calloc記憶體分配函式

calloc是乙個c語言函式 函式名 calloc void calloc unsigned n,unsigned size 功 能 在記憶體的動態儲存區中分配n個長度為size的連續空間,函式返回乙個指向分配起始位址的指標 如果分配不成功,返回null。跟malloc的區別 calloc在動態分配...

記憶體分配函式分類

有 4種用於記憶體分配的 api函式。虛擬 virtual 函式用於分配和管理大數量的記憶體,堆函式 heap 用於小數量記憶體,全域性函式 global 及區域性函式 local 用於小數量記憶體分配,這兩類函式是為了實現與 16位系統相容而提供的。win32 api 仍然維護全域性以及區域性的堆...

C 通過呼叫函式分配記憶體

1 以返回值方式返回 把動態分配的儲存位置位址,賦值給指標型別返回值 不同於被呼叫函式的自動變數位址 2 以形參形式返回 二級指標型別做形參 1 include 2 include 3 4 void fun int p 7 8 int main 段錯誤 1 include 2 include 3 4...