Twój kod nie powinien się kompilować.Typ nowego wyrażenia tablicowego jest wskaźnikiem do typu tworzonego elementu tablicy (wartość jest wskaźnikiem do pierwszego elementu przydzielonej tablicy).
Tak więc typ new double**[size_out]
to double ***
.
Za każdym razem, gdy korzystasz z nowej formy tablicowej, musisz użyć postaci tablicy usuwania, nawet jeśli przydzielisz tylko tablicę o rozmiarze jeden.
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;
Należy pamiętać, że nie przydzielono jeszcze żadnego double
, tylko wskaźniki.
Czy naprawdę tego chcesz?
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;
Zapraszamy do obejrzenia tutaj: http://stackoverflow.com/questions/340943/c-multi-dimensional-arrays-on-the-heap –