extern void abort(void); extern void exit(int); struct baz { int a, b, c; }; struct baz *c; void bar(int b) { if (c->a != 1 || c->b != 2 || c->c != 3 || b != 4) abort(); } void foo(struct baz a, int b) { c = &a; bar(b); } int main() { struct baz a; a.a = 1; a.b = 2; a.c = 3; foo(a, 4); exit(0); }