Il tuo codice non dovrebbe essere compilato.Il tipo di una nuova espressione di matrice è un puntatore al tipo di elemento di matrice creato (il valore è un puntatore al primo elemento dell'array allocato).
Quindi il tipo di new double**[size_out]
è double ***
.
Ogni volta che si utilizza il modulo matrice di nuovo, è necessario utilizzare il modulo matrice di eliminazione anche se si assegna solo un array di dimensione uno.
double*** desc = new double**[size_out];
for (int i=0; i<size_out; i++)
desc[i] = new double*[size_in];
for (int i=0; i<size_out; i++)
delete[] desc[i];
delete[] desc;
Si noti che non avete ancora assegnato alcuna double
, puntatori solo.
Volevi davvero questo?
double** desc = new double*[size_out];
for (int i=0; i<size_out; i++)
desc[i] = new double[size_in];
for (int i=0; i<size_out; i++)
delete[] desc[i];
delete[] desc;
fonte
2010-11-16 12:43:25
Date un'occhiata qui: http://stackoverflow.com/questions/340943/c-multi-dimensional-arrays-on-the-heap –