兩種方法:
1。先定義乙個一維陣列的型別,然後再用該型別定義乙個一維陣列(實際上已經成為二維的)
相當於遞迴定義
typedef int array[col]; //使用typedef定義乙個具有col個元素的陣列型別
array *a; //定義二維陣列,與一維陣列相同
a=new array[row]; //為該一維陣列(實際上二維)申請空間
該方法定義的動態二維陣列的釋放只需以下語句即可:
delete a;
a=null;
2。 使用陣列指標,分配乙個指標陣列,將其首位址儲存在b中,然後再為指標陣列的每個元素分配乙個陣列
int **b=new int*[row]; //分配乙個指標陣列,將其首位址儲存在b中
for(i=0;i3. int *mat = new int[m * n];
這種方法的優點是記憶體連續,存續速度快。並且釋放時也很簡單直接delete mat;即可。
[cpp]view plain
copy
print?
#include
using
namespace std;
void main(void)
// int *mat = new int[n * n]; // 方法3
// 賦值
for (int i = 0; i < 3; i++) }
// 輸出
for (int i = 0; i < 3; i++)
cout<}
// 釋放
// 方法2
for (int i = 0; i < 3; i++)
delete mat;
mat = null;
// 方法3,很簡單
// delete mat;
system("pause"); }
C C 動態二維陣列的記憶體分配和釋放
c語言 cpp view plain copy 二維陣列動態陣列分配和釋放 陣列指標的記憶體分配和釋放 方法一 char a n 指向陣列的指標 a char n malloc sizeof char n m free a 方法二 char a inti a char malloc sizeof c...
C中分配和釋放二維陣列
動態分配二維陣列,在資料量很多的時候也不會導致程式崩潰 注意要free掉 sizeofelement 陣列中每個元素的大小 row 行數,從1開始計數 col 列數,從1開始計數 void malloctwodimensionarray unsigned sizeofelement unsigned...
動態分配二維陣列
1.c語言動態分配二維陣列 1 已知第二維 code 1 char a n 指向陣列的指標 a char n malloc sizeof char m printf d n sizeof a 4,指標 printf d n sizeof a 0 n,一維陣列 free a 2 已知第一維 code ...