如果使用以下方式分配,将无法通过编译double * x;x=new double[10][10];原因是new没有分配多维数组的能力。可以直接new double[100]分配一个一维数组来代替两维的,用的时候做一下下标转换即可。或者也可以分配一个指针数组,再为每一个指针分配一个数组来实现两维的堆内存分配。也可以用如下形式:A=new int*[10];for(int i=0;i<10;i++)A[i]=new int[10];注意:二维数组的头指针是一个指针的指针,也就是double**,int**...所以必须分配两次.所以例子中A的类型应声明为int**.

评论