C 二維陣列new小結 zz

2022-07-15 20:33:13 字數 956 閱讀 9047

二維陣列new小結

1. a (*ga)[n] = new a[m][n];

...

delete ga;

缺點:n必須是已知

優點:呼叫直觀,連續儲存,程式簡潔(經過測試,析構函式能正確呼叫)

2. a** ga = new a*[m];

for(int i = 0; i < m; i++)

ga[i] = new a[n];

...

for(int i = 0; i < m; i++)

delete ga[i];

delete ga;

缺點:非連續儲存,程式煩瑣,ga為a**型別

優點:呼叫直觀,n可以不是已知

3. a* ga = new a[m*n];

...

delete ga;

缺點:呼叫不夠直觀

優點:連續儲存,n可以不是已知

4. vector > ga;

ga.resize(m); //這三行可用可不用

for(int i = 1; i < n; i++) //

ga[i].resize(n); //

...

5. vector ga;

ga.resize(m*n);

方法3,4的結合

6. 2的改進版

a** ga = new a*[m];

ga[0] = new a[m*n];

for(int i = 1; i < m; i++)

ga[i] = ga[i-1]+n;

優點:連續儲存,n可以不是已知,析構方便,猜想只需delete ga;

問題:1.怎麼進行多維陣列的宣告和初始化?

2.是否能夠動態分配多維陣列,怎麼樣正確析構?

3.怎麼理解這些操作?

丟擲問題,本週搞定.

C 二維陣列new小結 zz

c 二維陣列new小結 zz 1.a ga n new a m n delete ga 缺點 n必須是已知 優點 呼叫直觀,連續儲存,程式簡潔 經過測試,析構函式能正確呼叫 2.a ga new a m for int i 0 i m i ga i new a n for int i 0 i m i...

二維陣列new小結

a ga n new a m n delete ga 缺點 n必須是已知 優點 呼叫直觀,連續儲存,程式簡潔 經過測試,析構函式能正確呼叫 a ga new a m for int i 0 i m i ga i new a n for int i 0 i m i delete ga i delete...

C 中二維陣列new小結

二維陣列new小結 轉至水木清華 1.a ga n new a m n delete ga 缺點 n必須是已知 優點 呼叫直觀,連續儲存,程式簡潔 經過測試,析構函式能正確呼叫 2.a ga new a m for int i 0 i m i ga i new a n for int i 0 i m...