From murdoch at stats.uwo.ca  Sun Feb  8 23:44:34 2009
From: murdoch at stats.uwo.ca (Duncan Murdoch)
Date: Sun, 08 Feb 2009 17:44:34 -0500
Subject: [Rd] Strange behavior of C compiled program
In-Reply-To: <498F5EA4.3060307@u-paris10.fr>
References: <498F5EA4.3060307@u-paris10.fr>
Message-ID: <498F6052.6070506@stats.uwo.ca>

On 08/02/2009 5:37 PM, Christophe Genolini wrote:
> Hi the list,
> 
> I need to include some C code in R, but the behavior of the C code is 
> strange : Here is my code :
> --- 8< ---
>     Rprintf("\n XXXX mTraj=%f 
> mClus=%f",mTraj[i+nbId*c],mClustersCenter[j+nbClusters*c]);
> 
>     Rprintf("\nDistA=%d Tmp=%d",dist,tmp);
>             tmp = mTraj[i+nbId* c] - mClustersCenter [j+nbClusters* c];
> 
>     Rprintf("\nDistB=%d Tmp=%d",dist,tmp);
>             dist += (tmp * tmp);
> 
>     Rprintf("\nDistC=%d Tmp=%d",dist,tmp);
> --- 8< ----
> 
> Herer are the stranges results it gives :
> 
> XXXX mTraj=1.000000 mClus=3.000000
> DistA=0 Tmp=0
> DistB=0 Tmp=0
> DistC=0 Tmp=1074790400
> 
> I ask on a C chat, but no one can answer me.
> Any idea of what wrong ?

You likely have the wrong types for the variables you're printing.  In 
C, the format has to match the type of the variable; if you use the 
wrong one, you get garbage.

Duncan Murdoch



[Rd] Strange behavior of C compiled program
Duncan Murdoch