一個矩陣類Matrix 類,在構(gòu)造函數(shù)中根據(jù)參數(shù)創(chuàng)建數(shù)據(jù)成員:一個二維數(shù)組,類中實際定義的二維數(shù)組的數(shù)據(jù)成員是一個指針 ( 二級指針 ) , int **pMatrix 。 在構(gòu)造函數(shù)中根據(jù)傳送的參數(shù)為這個二維數(shù)組分配空間: 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];
倒可以通過編譯
??????
//忘了從什么地方看到某人這么說:
動態(tài)數(shù)組不能用在二維……
動態(tài)數(shù)組實際上是一個指針,為其分配空間
如果想設(shè)置二維數(shù)組的話,就必須設(shè)置一個指針類型的動態(tài)數(shù)組,數(shù)組中的每個項都是另一個二維數(shù)組
舉例:
int **a = new int* [m];
for(int i=0; i<m; i++)
??a[i]= new int[n];
釋放內(nèi)存時要先
for(i=0; i<m; i++)
??delete[] a[i];
然后再
delete[]??a;
呵呵;
posted on 2006-04-09 22:54
華劍緣 閱讀(591)
評論(2) 編輯 收藏 引用