C 中的動態二維陣列

2021-06-22 18:22:25 字數 625 閱讀 9405

在c++中不能使用動態二維陣列。

二維陣列本質就是陣列的陣列,陣列a[row][col]中,a[row]就是陣列,按照這個想法,我們可以自己實現動態二維陣列。

先給第一維分配記憶體空間,其內容為指向指標的指標,然後再給第二位分配記憶體。

之前聽說過二維陣列是以行優先儲存或以列優先儲存,說明二維陣列記憶體中是連續的。

行優先:value=p[i][j]=第(ixrow+j)個元素

列優先:value=p[i][j]=第(jxcol+i)個元素。

實現時,可以是連續的,也可以是不連續的。

記憶體連續,行優先

#includeusing namespace std;

int main()

{ int row=2,col=3;

int **p=new int*[row];

p[0]=new int[row*col];//分配一塊連續的記憶體

for(int i=1;i

記憶體不連續

#includeusing namespace std;

int main()

{ int row=2,col=3;

int **p=new int*[row];

for(int i=0;i

c 二維動態陣列

很多時候,我們無法得知或者不用去考慮程式在執行時需要建立多大的陣列,此時動態資料的建立就會顯得格外重要了,二維動態陣列具有很高的靈活性和實用性,廢話不多說,原始碼呈上!其中包括了一些vs記憶體檢測的語句,大家看注釋吧 include include using namespace std ifdef...

C 中動態申請二維陣列

這裡主要介紹c 中動態申請二維陣列的兩種方式,直接給出 很容易明白,簡單的作為乙個筆記。include include 輸入輸出操縱 include using namespace std 法一 new 方式申請 void dynamicarray for i 0 i rows i cout end...

C 中動態二維陣列的申請

動態二維陣列的申請,主要是記憶體的申請,或者直接呼叫c 中的stl,因此有兩種方法 用new申請記憶體 void dynamicarray 不過不推薦這樣做,理由是,我們不能保證這個陣列的連續性!失去了連續性的陣列,那我們還不如去使用stl呢。接下來的方法申請二維動態陣列是基於動態一維陣列的申請,我...