关于c ++:新矩阵[N] [N]失败

new matrix[N][N] failure

本问题已经有最佳答案,请猛点这里访问。

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

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

我收到一个错误:

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

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


你可以做的像这样: </P >

1
2
3
4
int N = 10 ;
double** mul1 = new double*[N];
for(int i = 0; i < N; ++i)
   mul1[i] = new double[N];

1
2
3
double *mul1[N];
for (int i=0;i<N;++i)
    mul1[i] = new double[N];

representing A的二维阵列作为一个一维数组 </P >

性能评估的2维阵列与1维阵列 </P >