如何new乙個二維陣列

2021-07-04 10:29:46 字數 641 閱讀 9943

定義二維陣列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;iarray1[i] = new char[y];

...用的時候可以直接array1[i][j]

注意delete

for(i=0;idelete array1[i];

delete array1;

3.要用的方便,可以在array上加定義乙個指標變數。

char *array = new char[x*y];

char **array2;

array2 = new char *[x];

for(int i=0;iarray2[i] = array + i*y;

...用起來還是array2[i][j],但二維陣列已經是一塊連續記憶體,這是和第二種方法區別的地方,感覺這是比較適合用二維陣列的習慣。

delete array2; 

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 i arra...

二維陣列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...

如何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 ...