0

我有一个堆栈溢出,在堆栈上分配了一个巨大的矩阵(我同意这一点:在那里分配它很愚蠢),我正在编写以下代码,因为我想使用下标索引访问矩阵的元素 mat[ x][y]

double (*mul1)[N][N];
mul1 = new double[N][N];

我收到一个错误:

error C2440: '=' : cannot convert from 'double (*)[1000]' to 'double(*)[1000][1000]'

为什么我不能用 new 分配二维数组?

4

2 回答 2

2

你可以这样做:

int N = 10 ;
double** mul1 = new double*[N];
for(int i = 0; i < N; ++i)
   mul1[i] = new double[N];
于 2013-03-23T11:23:00.027 回答
1
double *mul1[N];
for (int i=0;i<N;++i)
    mul1[i] = new double[N];

将二维数组表示为一维数组

二维数组与一维数组的性能

于 2013-03-23T11:22:24.570 回答