Ваш код не должен компилироваться.Тип нового выражения массива - это указатель на тип создаваемого элемента массива (значение является указателем на первый элемент выделенного массива).
Таким образом, тип new double**[size_out]
равен double ***
.
Всякий раз, когда вы используете форму массива new, вы должны использовать форму массива delete, даже если вы выделяете только массив размером один.Выделены double
, только указатели.
Вы действительно хотели этого вместо?
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;