假設我們要為乙個字元陣列(乙個有 20 個字元的字串)分配記憶體,我們可以使用上面例項中的語法來為陣列動態地分配記憶體,如下所示
char
* pvalue =
null
;// 初始化為 null 的指標
pvalue =
newchar[20
];// 為變數請求記憶體
要刪除我們剛才建立的陣列,語句如下:
delete
pvalue;
// 刪除 pvalue 所指向的陣列
下面是 new 操作符的通用語法,可以為多維陣列分配記憶體,如下所示:
一維:
// 動態分配,陣列長度為 m
int*array=
newint
[m];
//釋放記憶體
delete
array;
二維:
int
**array
// 假定陣列第一維長度為 m, 第二維長度為 n
// 動態分配空間
array =
newint
*[m]
;for
(int i=
0; i)//釋放
for(
int i=
0; i)delete
array;
二維陣列例項測試:
#include
using
namespace std;
intmain()
for(i=
0; i<
4; i++)}
//列印資料
for(i=
0; i<
4; i++)}
//開始釋放申請的堆
for(i=
0; i<
4; i++
)delete
p;return0;
}
三維陣列測試例項
#include
using
namespace std;
intmain()
//輸出 p[i][j][k] 三維資料
for(i=
0; i<
2; i++
) cout<} cout<}// 釋放記憶體
for(i=
0; i<
2; i++)}
for(i=
0; i<
2; i++
)delete
p;return0;
}
參考: 陣列的動態記憶體分配
1.已知陣列的第二維進行動態記憶體分配 方式 利用陣列指標 include using namespace std intmain int argc,char ar delete p 釋放記憶體 return0 2.1已知陣列的第一維進行動態記憶體分配 方式 利用指標陣列 include using...
動態記憶體分配
在c 中建立乙個物件時,我們必須要為這個物件申請一塊記憶體,而且要用建構函式對這塊記憶體進行初始化。c 中的new和delete相對於c的庫函式malloc和free在這方面有很大的優勢,所以我們主要講的是運算子new和delete。當用new來建立乙個物件時,它會自動在堆裡為物件分配記憶體並且為這...
動態記憶體分配
為什麼使用動態記憶體分配?c語言中的一切操作都是基於記憶體的 變數和陣列都是記憶體的別名,如何分配這些記憶體由編譯器在編譯期間決定 定義陣列的時候必須指定陣列唱的 而陣列長度是在編譯期就必須決定的 需求 程式執行的過程中,可能需要使用一些額外的記憶體空間 malloc和free malloc和fre...