C 中二維陣列的動態分配

2021-04-27 15:13:24 字數 712 閱讀 6180

c++中二維陣列的動態分配

c++中一維陣列的動態分配十分常用,但c++初學者可能很少想過要使用動態分配的二維陣列,或者自認為二維陣列就是這樣分配的(至少我自己開始的時候就這樣認為):int m=2, n=3; int** array2d=new int[m][n];。這完全是我們寫多了像int n=4; int* array=new int[n];這樣的語句留下的後遺症,純粹是因為慣性太大剎都剎不住,就像某同學學完「一二三」要寫「萬」一樣。

事實往往不是這麼簡單,看下面的正確方法就知道了:

#include

using std::cout;

using std::endl;

int main()

利用c++二維陣列動態分配的特點,我們還可以分配出用靜態陣列無法實現的不等長二維陣列,想要多少就分配多少。看下面的例子:

#include

using std::cin;

using std::cout;

using std::endl;

int main() ;

//行指標陣列

int** array2d=new int*[m];

//每行分配不一樣多的空間

for(i=0; i//測試一下

for(i=0; i當然,如果你想一勞永逸,不想這麼麻煩的分配來分配去,那麼去寫個類模板吧,在類模板中過載陣列下標運算子,你就可以像使用靜態陣列一樣使用你的類了。

C 中二維陣列的動態分配

c 中二維陣列的動態分配 c 中一維陣列的動態分配十分經常使用,但c 剛開始學習的人可能非常少想過要使用動態分配的二維陣列,或者自覺得二維陣列就是這樣分配的 至少我自己開始的時候就這樣覺得 int m 2,n 3 int array2d new int m n 這全然是我們寫多了像int n 4 i...

動態分配二維陣列

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

動態分配二維陣列

原文摘自 假設我需要乙個nrows ncolumns陣列,則可以用以下幾種方法動態分配空間 1.動態陣列的成員都可以用正常的陣列下標 array i j include include void main printf n free array 2.讓陣列的內容連續,但在後來重新分配列的時候會比較困...