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...