C動態主記憶體分配是在C語言中為了實現動態主記憶體分配而進行的手動主記憶體管理。這種管理是通過C標準函式庫中的mallocrealloccallocfree 等函式進行的。[1][2]

C++ 為了相容 C 語言也提供這些函式,但是更推薦使用 newdelete 運算子來完成類似的操作。[3]

malloc 所實際使用的主記憶體分配機制有很多不同的實現,執行時間和主記憶體消耗各有不同。

函式概述

C 動態主記憶體分配函式在標頭檔 stdlib.h 中聲明(C++ 中對應的標頭檔名稱為 cstdlib)。[1]

More information 函式, 描述 ...
函式 描述
malloc 分配指定數量的位元組
realloc 調整指定主記憶體塊的大小,必要時會重新分配
calloc 分配指定數量的位元組,並初始化為 0
free 釋放指定的主記憶體塊
Close

類型安全

malloc 所執行的主記憶體分配基於位元組數而不是類型,其返回類型為 void 指標(void *),表示該指標所指向區域的資料類型未知。C++ 由於其強型別系統,實際使用該指標時需要進行強制類型轉換,而 C 語言中則不必進行。

int * ptr;
ptr = malloc(10 * sizeof(int));		/* 不进行强制类型转换 */
ptr = (int *)malloc(10 * sizeof(int));	/* 进行强制类型转换 */

另見

參考資料

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.