用new實現二位陣列的幾種方法

2021-07-22 12:27:03 字數 651 閱讀 5913

定義二維陣列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;

C語言二位陣列

前言 今天在實現裝配線排程程式時候,用到了二維陣列,並將其作為函式的引數。在寫程式的時候,遇到一些問題,即二維陣列做函式的引數應該如何正確表示。我寫程式的錯誤如下程式所示 1 include 2 void print int a 3 3 67intmain 8 10print a 11return0...

二位陣列與指標

include include using namespace std void disparry int a 2 3 int main void c是乙個指標,指向的元素int 3 即arr的行元素 int c 3 arr int p p int arr p指向arr 0 0 也可以說是arr 0...

二位陣列傳參及二位陣列動態分配問題

二位陣列引數傳遞 1.void display1 int arr 4 const int rows cout endl cout endl 2.void display2 int parr 4 const int rows cout endl cout endl parr i 等價於 parr i ...