陣列的動態記憶體分配(new delete)

2021-09-29 21:36:10 字數 1445 閱讀 2587

假設我們要為乙個字元陣列(乙個有 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...