new動態建立二維陣列的方法

2021-06-01 02:33:40 字數 538 閱讀 6220

1.

a (*ga)[n] = new a[m][n];

...delete ga;

缺點:n

必須是已知

優點:呼叫直觀,連續儲存,程式簡潔

(經過測試,析構函式能正確呼叫

)2. a** ga = new a*[m];

for(int i = 0; i < m; i++)

ga[i] = new a[n];

...for(int i = 0; i < m; i++)

delete ga[i];

delete ga;

缺點:非連續儲存,程式煩瑣,ga為

a**型別

優點:呼叫直觀,

n可以不是已知

3. a* ga = new a[m*n];

...delete ga;

缺點:呼叫不夠直觀

優點:連續儲存,

n可以不是已知

4. vector

vector> ga(m,vector(n)) 注:

n,m都可以未知

C 用new建立二維陣列的方法

問題 在c 中,陣列可以被視為一種型別 但是,不存在 二維陣列 這種型別。二維陣列本身會被解釋成乙個一維陣列 這個陣列的元素型別為另一種一維陣列。比如int 2 3 這個二維陣列,它會被編譯器視作乙個元素型別為 int 3 的一維陣列。並且,int 3 和 int 4 會被當成不同的資料型別。假設a...

C 用new建立二維陣列的方法

方法一 使用常量 接上 如果將b 即列數 指定為乙個常量,例如new int a 3 其實質與new int a 建立乙個動態陣列並無多大區別 只是元素型別由int變為了 int 3 而已。示例 用這個方法來建立二維陣列,比較直觀 易用,但它最大的限制在於 你必須在編譯時確定b的大小 int mai...

動態建立二維陣列

c 中用new動態建立二維陣列的格式一般是這樣 type p n new type n 其中,type是某種型別,n是二維陣列的列數。採用這種格式,列數必須指出,而行數無需指定。在這裡,p的型別是type n 即是指向乙個有n列元素陣列的指標。還有一種方法,可以不指定陣列的列數 int p p ne...