C 二維陣列記憶體動態分配類以及函式過載

2021-08-31 01:43:39 字數 1378 閱讀 4683

總時間限制: 

1000ms

記憶體限制: 

65536kb

// 在此處補充你的**
描述

寫乙個二維陣列類 array2,使得下面程式的輸出結果是:

0,1,2,3,

4,5,6,7,

8,9,10,11,

next

0,1,2,3,

4,5,6,7,

8,9,10,11,

程式:

#include #include using namespace std;

class array2 ;

int main()

cout << endl;

}cout << "next" << endl;

array2 b; b = a;

for( i = 0;i < 3; ++i )

cout << endl;

}return 0;

}

輸入無輸出

0,1,2,3,

4,5,6,7,

8,9,10,11,

next

0,1,2,3,

4,5,6,7,

8,9,10,11,

樣例輸入

none
樣例輸出

0,1,2,3,

4,5,6,7,

8,9,10,11,

next

0,1,2,3,

4,5,6,7,

8,9,10,11,

這裡使用一維陣列記憶體動態分配的方法來實現,注意構造拷貝要用深拷貝

a(i,j)的過載比較容易實現

注意這裡a[i][j]的過載,只需要讓前乙個返回p+i*m(列數)即可,後面乙個就是指標

#include #include using namespace std;

class array2

array2(int n_, int m_) :n(n_), m(m_)

array2(array2 &a) :n(a.n), m(a.m)

array2 & operator=(const array2 &a)

~array2()

int * operator (int i)

int & operator()(int i, int j)

};int main()

cout << endl;

} cout << "next" << endl;

array2 b; b = a;

for (i = 0; i < 3; ++i)

cout << endl;

} return 0;

}

二維陣列動態分配記憶體

在robert sedgewick所著的algorithm in c中,把二維陣列當成陣列的陣列為它動態分配記憶體。首先,分配乙個指標的陣列,然後為每一行分配記憶體。函式定義 void malloc2d int r,int c,int size void free2d void arr,int r ...

二維陣列動態分配記憶體

對二維陣列分配動態空間 1.已知二維陣列的行 第一維 include include 已知陣列的行數 列數由終端輸入 int main void int i,j,num int a 3 已知陣列有3行 printf 請輸入二位陣列的列數 n scanf d num 列數由終端輸入 for i 0 i...

二維陣列動態分配記憶體

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