如何用new定義二維資料以及對應的delete

2021-10-03 19:01:49 字數 1716 閱讀 8463

之前改程式的時候,不僅是單單的頭疼,而是已經到了厭惡和恐懼的地步。

今年改觀了,因為讀《傅盛認知三部曲》給了我一些啟發:對計算機的認知決定了你在計算機領域的成就。所以不再把他看成折磨你的惡魔,而是看成乙個需要了解的朋友,在遇到問題的時候,心裡的抗拒就會少很多。

步入正題,改**收穫:

1、用new建立二維陣列的方法及其配套的delete

char

**a=

newchar

*[n]

//建立二維陣列

for(

int i=

0;i;i++

)for(int i=

0;idelete[

] a;

之前在做資料結構實驗的時候,儲存一組商品或其他事物的名稱真的很讓我頭禿,沒想到今年補休c++就把我的問題給輕鬆解決了!!!

菜鳥的快樂總是如此簡單~

這也是成長的禮物吧。

2、剛剛上手new總會遇到各種各樣的問題,像這乙個:

用new定義了乙個陣列,總是會有陣列越界的提示,查了查發現:

程式有時判斷是否越界訪問,會在陣列的最後乙個元素之後對應的位址處設定資料讀寫斷點。如果該位址對應其它變數干擾判斷,可將陣列多宣告乙個元素,並設定資料讀寫斷點在該多出元素對應的位址上。所以,宣告的時候多乙個,就可以吧這個問題輕鬆解決了!。(這個是乙個輸入商品和對應的**來找出最低價商品和最**商品的**)

#include

#include

//#pragma warning(disable:4996)//使scanf可以使用

using

namespace std;

intqiumax

(float

*p,int n)

}return m;

}int

qiumin

(float

*p,int n)

}return m;

}int

main()

float

*b =

newfloat

[n+1];

for(i =

0; i < n; i++

) d =

qiumax

(b, n)

; x =

qiumin

(b, n)

; cout <<

"highest price:"

;printf

(" %.1f"

,b[d]);

cout <<

", "

;printf

("%s"

, aa[d]);

cout << endl;

/*for (i = 0; aa[i] != '\0'; i++)

*/ cout <<

"lowest price:"

;printf

(" %.1f"

, b[x]);

cout <<

", "

;printf

("%s"

, aa[x]);

//cout << "," << aa[x];

for(i =

0; i < n+

1; i++

)delete

aa;

delete

b;return0;

}

C 二維陣列,以及自定義二維陣列

我們通常情況下是這樣定義乙個二維陣列的 int a 10 15 我們分別檢視一下a,a 0 a 都是一樣的值吧 我們可以這麼理解 a是乙個陣列的陣列 a是陣列首元素的位址,a的首元素是乙個15個元素的陣列,a 0 和a 0 的首元素 a 0 0 的位址是同乙個位址 所以有人可能會想int pa 是不...

如何new乙個二維陣列

定義二維陣列char array x y 1.只定義個一維的就可以了 char array array new char x y 訪問的時候 array i y j 表示array i j 2.定義乙個二維陣列 char array1 array1 new char x for i 0 iarray...

如何new與delete各種二維陣列

一鍵約師傅 define m 10u define n 20u include int main void 刪除的時候是 for int j 0 j delete pnum 第二種,記憶體連續,但是不能,最推薦的一種。不能但是你可以通過 i n j 來計算 啊 這種是1維陣列轉化為2維陣列 int ...