Wolfram Research, Inc.
int MLGetRealArray(MLINK link, double **a, long **dims, char ***heads, long *d) gets an array of floating-point numbers from the MathLink connection specified by link, storing the array in a, its dimensions in dims and its depth in d.
The array a is laid out in memory like a C array declared as double a[m][n]... .
heads gives a list of character strings corresponding to the names of symbols that appear as heads at each level in the array.
MLGetRealArray() allocates memory which must be disowned by calling MLDisownRealArray().
External programs should not modify the arrays generated by MLGetRealArray().
See The Mathematica Book: Section 2.12.4.