MLGetReal(Double) Problem in MathLink
- To: mathgroup at smc.vnet.net
- Subject: [mg119064] MLGetReal(Double) Problem in MathLink
- From: Soroush Heidari Pahlavian <shp_maya at yahoo.com>
- Date: Sat, 21 May 2011 06:45:21 -0400 (EDT)
When I change the simple addtwo program in order to work with Real(Double)
numbers instead of Integer ones, the answer goes wrong (4+5 = -143566321 !).
What is the problem with the following code?
Thanks....
***************************************************************
#include <stdio.h>
#include "mathlink.h"
int main( int argc, char* argv[])
{
double a, b;
double ans;
MLINK lp;
MLEnvironment env;
printf( "Enter two doubles: a and b\n\t" );
scanf( "%d %d", &a, &b);
env = MLInitialize(NULL);
if(env == NULL) return 1;
lp = MLOpen(argc, argv);
if(lp == NULL) return 1;
MLPutFunction(lp, "Plus", 2);
MLPutDouble(lp, a);
MLPutDouble(lp, b);
MLEndPacket(lp);
/* skip any packets before the first ReturnPacket */
while (MLNextPacket(lp) != RETURNPKT) MLNewPacket(lp);
MLGetDouble(lp, &ans);
printf( "ans = %d\n", ans);
MLClose(lp);
MLDeinitialize(env);
return 0;
}