How to allocate a contiguous multidimensional array in GNU C++ ? There's a GNU extension that allows the "standard" syntax to work.
It seems the problem come from operator new []. Make sure you use operator new instead :
double (* in)[n][n] = new (double[m][n][n]); // GNU extension
And that's all : you get a C-compatible multidimensional array...