一個矩陣類Matrix 類,在構造函數中根據參數創建數據成員:一個二維數組,類中實際定義的二維數組的數據成員是一個指針 ( 二級指針 ) , int **pMatrix 。 在構造函數中根據傳送的參數為這個二維數組分配空間: pMatrix = newint[x][y]
~~~~~~~~
?int **pMatrix;
pMatrix = new int [x][y] ;
~~~~~~~~
*pMatrix = new int[x][y]
這樣她提示什么
?error C2440: '=' : cannot convert from 'int (*)[1]' to 'int *'
編譯器說new int [x][y]是int (*)[1]型的
?
如果改成:
int **pMatrix;
*pMatrix= new int [x];
倒可以通過編譯
??????
//忘了從什么地方看到某人這么說:
動態數組不能用在二維……
動態數組實際上是一個指針,為其分配空間
如果想設置二維數組的話,就必須設置一個指針類型的動態數組,數組中的每個項都是另一個二維數組
舉例:
int **a = new int* [m];
for(int i=0; i<m; i++)
??a[i]= new int[n];
釋放內存時要先
for(i=0; i<m; i++)
??delete[] a[i];
然后再
delete[]??a;
呵呵;