動態建立二維陣列

2021-06-19 22:15:02 字數 1411 閱讀 5053

c++中用new動態建立二維陣列的格式一般是這樣:

type (*p)[n] = new type [n];

其中,type是某種型別,n是二維陣列的列數。採用這種格式,列數必須指出,而行數無需指定。在這裡,p的型別是type*[n],即是指向乙個有n列元素陣列的指標。

還有一種方法,可以不指定陣列的列數:

int **p;

p = new int*[10]; 

//注意,int*[10]表示乙個有10個元素的指標陣列

for (int i = 0; i != 10; ++i)

這裡是將p作為乙個指向指標的指標,它指向乙個包含10個元素的指標陣列,並且每個元素指向乙個有5個元素的陣列,這樣就構建了乙個10行5列的陣列。

當陣列使用完畢,釋放空間的**是:

for(int i = 0; i != 5; i++)

delete p;

處理二維陣列,可以用降維或是二維法。

降維法是用一位陣列來接受二維陣列,將二維元素的首位址&a[0][0]作為引數,傳遞給函式,函式用int *接受。

二維法就直接用二維陣列來接受,但是需要指定列數。

如要想建立乙個[m][n]的二維陣列。

下面為通過動態建立乙個指標陣列的方法來動態建立二維陣列的方法。

c版本:

double **data;

data = (double **)malloc(m*sizeof(double *));

for(int j=0;j

for (int i=0;i}

for (i=0;i

free(data);

c++版本:

double **data;

data = new double*[m];//設定行 或直接double **data=new double*[m]; 乙個指標指向乙個指標陣列。

for(int j=0;j

//這個指標陣列的每個指標元素又指向乙個陣列。

}

for (int i=0;i

} for (i=0;i

delete data[i]; //先撤銷指標元素所指向的陣列

} delete data

這種方法是通過先動態建立乙個指標陣列,然後為指標陣列的每個元素再動態指向乙個陣列的辦法來完成的。其建立過程與銷毀過程兩樣重要。

在銷毀的過程,先銷毀指標陣列每個元素指向的陣列,然後再銷毀這個指標陣列。

動態建立二維陣列

1.c 中 使用陣列指標,分配乙個 指標陣列,將其首位址儲存在b中,然後再為指標陣列的每個元素分配乙個陣列 int b new int row 分配乙個指標陣列,將其首位址儲存在b中 for i 0 ib null 例 動態建立二維陣列 void main int col,row cin row c...

建立動態二維陣列

法1既然二維陣列也可以稱為矩陣,那麼我們就可以給二維陣列的每一行開闢一塊空間,然後再用一塊空間把這些空間的行存放和管理起來,這塊空間顯然就是乙個指標陣列,陣列的每乙個元素都是乙個指向乙個陣列的位址。int arr null int row 5 用於表示行數 int col 5 用於表示列數 arr ...

C 動態建立二維陣列

方法1 用一維陣列代替二維陣列 int n,m cin n m int a new int n m for int i 0 icoutcout執行結果 0 00491bb0 1 00491bb4 2 00491bb8 1 00491bbc 2 00491bc0 3 00491bc4 2 00491b...