问题
I'm having a stack overflow allocating a huge matrix on the stack (and I agree with that: it's stupid to allocate it there) and I'm writing the following code since I want to access the matrix's elements with the subscripts indices mat[x][y]
double (*mul1)[N][N];
mul1 = new double[N][N];
I'm receiving an error:
error C2440: '=' : cannot convert from 'double (*)[1000]' to 'double(*)[1000][1000]'
Why can't I allocate a bidimensional array with new?
回答1:
double *mul1[N];
for (int i=0;i<N;++i)
mul1[i] = new double[N];
Representing a 2D array as a 1D array
Performance of 2-dimensional array vs 1-dimensional array
回答2:
You can do it like so:
int N = 10 ;
double** mul1 = new double*[N];
for(int i = 0; i < N; ++i)
mul1[i] = new double[N];
来源:https://stackoverflow.com/questions/15586075/new-matrixnn-failure