一:malloc/free(函式)
malloc(memory allocation),意為動態記憶體分配,,從堆中分配和釋放記憶體。
一般形式:
void
*malloc
(int numbytes)
;void
free
(void
*ptr)
;
案例一:
int
*p =
null
; p =
(int*)
malloc(10
*sizeof
(int))
;if(p)
案例二:
int
*p =
null
;int
*q =
null
; p =
(int*)
malloc(10
*sizeof
(int))
; q = p;
if(p)
二:new/delete(運算子)
使用方式:
指標變數名 = new 型別識別符號;
指標變數名 = new 型別識別符號(初始值);
指標變數名 = new 型別識別符號[記憶體單元個數];
案例一:
int
*p =
newint;if
(p !=
null
)//new失敗可能直接報異常,而不是返回null
案例二:
int
*p =
newint(2
);if(p !=
null
)//new失敗可能直接報異常,而不是返回null
案例三:
int
*p =
newint
[100];
//申請100*4個位元組
if(p !=
null
)//new失敗可能直接報異常,而不是返回null
注意:
(1)malloc/free與new/delete必須配套使用
(2)不可多次使用delete來釋放同一塊記憶體,因為這個時候,已經不是把屬於自己的記憶體空間進行釋放了,有可能會出現程式異常。
malloc free與new delete的區別
相同點 都可用於申請動態記憶體和釋放記憶體 不同點 1 操作物件有所不同。malloc與free是c c 語言的標準庫函式,new delete 是c 的運算子。對於非內部資料類的物件而言,光用maloc free 無法滿足動態物件的要求。物件在建立的同時要自動執行建構函式,物件消亡之前要自動執行析...
malloc free與new delete的區別
相同點 都可用於申請動態記憶體和釋放記憶體 不同點 1 操作物件有所不同。malloc與free是c c 語言的標準庫函式,new delete 是c 的運算子。對於非內部資料類的物件而言,光用maloc free 無法滿足動態物件的要求。物件在建立的同時要自動執行建構函式,物件消亡之前要自動執行析...
malloc free與new delete的區別
相同點 都可用於申請動態記憶體和釋放記憶體 不同點 1 操作物件有所不同。malloc與free是c c 語言的標準庫函式,new delete 是c 的運算子。對於非內部資料類的物件而言,光用maloc free 無法滿足動態物件的要求。物件在建立的同時要自動執行建構函式,物件消亡之前要自動執行析...