De: Antonio Scuri <antonio.sc...@gmail.com>
Enviado: quinta-feira, 16 de julho de 2020 19:00
Para: IUP discussion list.
Assunto: Re: [Iup-users] IUP assorted issues (part IV)

>  Yes, there are two integers there. And we provide an array with twice the 
> size, but count still contains just the >number of points. It is correct.
IMHO, I can't see how this can work.

#include <stdio.h>

typedef struct CPOINT {
    long x;
    long y;
} POINT, *PPOINT;


void cast_to_point(int * ipoints, int count)
{
    POINT * cpoints;
    int i;
    
    cpoints = (POINT*) ipoints;
    for(i = 0; i < count; ++i) {
        printf("cpoints[%d]->x=%ld\n", i, cpoints[i].x);
        printf("cpoints[%d]->y=%ld\n", i, cpoints[i].y);
    }
}

int main()
{
    int ipoints[6];
    
    ipoints[0] = 180;
    ipoints[1] = 50;
    ipoints[2] = 180;
    ipoints[3] = 20;
    ipoints[4] = 230;
    ipoints[5] = 70;

    cast_to_point(ipoints, 3);
}

output:
cpoints[0]->x=214748364980
cpoints[0]->y=85899346100
cpoints[1]->x=300647710950
cpoints[1]->y=0
cpoints[2]->x=0
cpoints[2]->y=135050311015237

I think is better declare a struct point for the IUP use.

typedef struct IUP_POINT {
    long x;
    long y;
} point_t,;

regards,
Ranier Vilela

_______________________________________________
Iup-users mailing list
Iup-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/iup-users

Reply via email to