typedef struct point { float *p; struct { float x; float y; } s; struct point* next; } point; void func(point *sp1, point* sp2) { sp2->p = A; sp2->s.x = B; sp2->s.y = C; } int main() { point *init, *final; // assume init has been initialized to some value; func(init, final); return 0; }