#include /* newPoint.c */ #include typedef struct {double x, y; } Point; Point * newPoint(double x, double y) { Point * r = malloc( sizeof( Point ) ); if ( r == NULL ) fprintf(stderr, "newPoint: out of memory\n"); else { r->x = x; r->y = y; } return r; } Point * addP(Point * p, Point * q) { return newPoint( p->x + q->x, p->y + q->y ); } int main() { Point p1 = {2.0, 3.5}, p2 = {7.1, 6.3}, * pp = addP(&p1, &p2); printf("Addition finished!\n"); printf("*pp=(%f,%f)\n", pp->x, pp->y); return 0; }