Mail Archives: cygwin/2006/08/21/12:01:27
Hi,
i have the following code. it compiles with gcc in Cygwin but the contents of
the array ifitQ that I get after the call to the subroutine readCharges2 is
gibberish.
The code compiles with gcc under Linux and it runs correctly. it also compiles
and runs correctly with windows visual studio. Pls help. The resuls i get with
Cygwin is:
isumNatms = 5
rrr 13
rrr 14
rrr 15
rrr 16
*** 1628693268
*** 1628693268
*** 16
*** 1034
instead of:
isumNatms = 5
rrr 13
rrr 14
rrr 15
rrr 16
*** 13
*** 14
*** 15
*** 16
the code is:
#include <stdio.h>
#include <stdlib.h>
void readCharges2(int *, int *, int *);
int main()
{
static int *ifitQ;
int *ipUniqAtms, *ipindexToFit;
int j;
int x,y;
ipUniqAtms =&x;
ipindexToFit=&y;
ifitQ = (int *) malloc(sizeof(int));
if(ifitQ==NULL){printf("Unable to allocate matrix ifitQ\n");
exit(EXIT_FAILURE);}
readCharges2(ifitQ,ipUniqAtms,ipindexToFit);
for(j=0; j< *ipUniqAtms ; j++)
{
printf("*** %d\n",ifitQ[j]);
}
return 0;
}
void readCharges2(int *ifitQ, int * ipUniqAtms, int * ipindexToFit)
{
int j, isumNatms=0;
isumNatms=5;
printf("isumNatms = %d \n",isumNatms);
ifitQ = (int *) realloc(ifitQ,isumNatms*sizeof(int));
if(ifitQ==NULL){printf("Unable to allocate matrix ifitQ\n");
exit(EXIT_FAILURE);}
ifitQ[0]=13;
ifitQ[1]=14;
ifitQ[2]=15;
ifitQ[3]=16;
*ipUniqAtms = 4;
*ipindexToFit = 3;
for(j=0; j< *ipUniqAtms ; j++)
{
printf("rrr %d\n",ifitQ[j]);
}
}
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -