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