Hi all,
I have a problem with the next example code. I can't compile it without
warnings with gcc.
The compilation out is:
$ gcc -Wall aPoint.c
aPoint.c: In function 'printaPoint2':
aPoint.c:23: warning: passing argument 1 of 'printaPoint1' from incompatible
pointer type
aPoint.c: In function 'printaPoint3':
aPoint.c:30: warning: passing argument 1 of 'printaPoint1' from incompatible
pointer type
and the call to printaPoint1 in printaPoint3 don't work, it shows strange
results
can someone help me to solve this doubt??
Thanks all
/**********************************aPoint.c******** *****************************/
/*gcc -Wall aPoint.c */
#include <stdio.h>
#include <stdlib.h>
typedef float aPoint[3];
//typedef struct {float a[3];}aPoint;
void printaPoint1(aPoint *pto)
{
int i;
//printf("printaPoint1: ptr=0x%X\n",&pto);
for(i=0;i<3;i++)
printf("%f ",(*pto)[i]);
printf("\n");
//for(i=0;i<3;i++) printf("%f ",(pto)[i]);printf("\n");
}
void printaPoint2(aPoint pto)
{
//printf("printaPoint2: ptr=0x%X &ptr=0x%X \n",pto,&pto);
printaPoint1(pto);
}
void printaPoint3(aPoint pto)
{
//printf("printaPoint2: ptr=0x%X &ptr=0x%X \n",pto,&pto);
printaPoint1(&pto);
}
int main()
{
aPoint pto;
pto[0]=1;
pto[1]=2;
pto[2]=3;
printf("call printaPoint1\n");
printaPoint1(&pto);
printf("call printaPoint2\n");
printaPoint2(pto);
printf("call printaPoint3\n");
printaPoint3(pto);
return 0;
}
~