一个矩阵类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;
呵呵;
posted on 2006-04-09 22:54
华剑缘 阅读(569)
评论(2) 编辑 收藏 引用