#include #include struct Point { int x, y; }; void DoubleXBroken(struct Point p) { p.x *= 2; } void DoubleXWorks(struct Point *p) { p->x *= 2; } int main(int argc, char **argv) { struct Point a = {1, 1}; DoubleXBroken(a); printf("(%d,%d)\n", a.x, a.y); // prints: (1,1) DoubleXWorks(&a); printf("(%d,%d)\n", a.x, a.y); // prints: (2,1) return EXIT_SUCCESS; }