C C 動態記憶體分配

2021-10-05 13:01:28 字數 1165 閱讀 3534

int

*p =

null

;//c語言寫法 等價於數字0

p =(int*)

malloc

(sizeof

(int))

;if(p !=

null

)

例2:
char

*point =

null

; point =

(char*)

malloc

(sizeof

(char))

;if(point !=

null

)

例3:
int

*p =

(int*)

malloc

(sizeof

(int)*

100)

;//分配可以放得下100個整數的記憶體空間

if(p !=

null

)

int

*myint =

newint

;//int *p = (int *)malloc(sizeof(int));

if(myint !=

null

)

例2

int

*myint =

newint(18

);//int *p = (int *)malloc(sizeof(int));

if(myint !=

null

)

例3

int

*pa =

newint

[100];

//開闢乙個大小為100的整形陣列空間

if(pa !=

null

)

額外補充知識:

(1)配對使用有malloc成功必然有free,有new成功必然有delete;

(2)free/delete, 不要重複使用

C C 的動態記憶體分配

記憶體分配方式有三種 從靜態儲存區分配 內存在編譯的時候已經分配好,這塊內存在程式的整個執行期間都存在 例 全域性變數 static變數 在棧上建立 區域性變數在棧上建立,函式執行結束時這些儲存單元自動被釋放。效率高,但容量有限。從堆上分配 動態記憶體分配。程式設計師用時自己申請和釋放,使用靈活,但...

動態記憶體分配

在c 中建立乙個物件時,我們必須要為這個物件申請一塊記憶體,而且要用建構函式對這塊記憶體進行初始化。c 中的new和delete相對於c的庫函式malloc和free在這方面有很大的優勢,所以我們主要講的是運算子new和delete。當用new來建立乙個物件時,它會自動在堆裡為物件分配記憶體並且為這...

動態記憶體分配

為什麼使用動態記憶體分配?c語言中的一切操作都是基於記憶體的 變數和陣列都是記憶體的別名,如何分配這些記憶體由編譯器在編譯期間決定 定義陣列的時候必須指定陣列唱的 而陣列長度是在編譯期就必須決定的 需求 程式執行的過程中,可能需要使用一些額外的記憶體空間 malloc和free malloc和fre...