problem with MLGetReal64Array
- To: mathgroup at smc.vnet.net
- Subject: [mg84725] problem with MLGetReal64Array
- From: GS <vokaputs at gmail.com>
- Date: Fri, 11 Jan 2008 22:03:51 -0500 (EST)
I am trying to compile a c program that uses MathLink, to be able to execute an external c-code from Mathematica. I use Mathematica 6.0.1 on Windows XP and a gcc compiler from cygwin with -mno-cygwin option. There were no problems with compiling and running the addtwo example rom the Mathematica tutorial. Since I will need to transfer arrays from and to Mathematica, I also want to learn how to use MLPutReal64Array and MLGetReal64Array functions. I did not have a problem with compiling an example with MLPutReal64Array from Mathematica online tutorial. However, the following example with MLGetReal64Array does not work for me (see the code below). The code compiles without errors, however, when I Install[] it, and run the command getRealArray[{{1., 2.}, {4., 5.}}] it crashes the link with the message "LinkObject::linkd: Unable to communicate with closed link ...". Did anybody succeed in compiling this example? Thanks. PS. My attempt to compile with Microsoft Visual C gives the same result (link crash). ******************** array.c *************************** #include "mathlink.h" /* read an array of double-precision floating-point numbers from a link */ void get_real_array(MLINK lp) { double *data; int *dims; char **heads; int d; /* stores the rank of the array */ if(! MLGetReal64Array(lp, &data, &dims, &heads, &d)) { /* unable to read the array from lp */ return; } MLReleaseReal64Array(lp, data, dims, heads, d); } int main(int argc, char* argv[]) { return MLMain(argc, argv); } ********************* end of array.c**************************** ********************* array.tm******************************** :Begin: :Function: get_real_array :Pattern: getRealArray[x_] :Arguments: {x} :ArgumentTypes: {Manual} :ReturnType: Null :End: :Evaluate: getRealArray::usage = "gets a matrix of reals." **************************************************************