Search code examples
c++multidimensional-arraystack-overflow

new matrix[N][N] failure


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?


Solution

  • 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