#include #include typedef struct { int first; int second; } Pair; void set_pair1(Pair p) { p.first = 333; p.second = 4; } void set_pair2(Pair *p) { Pair tmp; tmp.first = 333; tmp.second = 4; p = &tmp; } void set_pair3(Pair *p) { Pair tmp; tmp.first = 333; tmp.second = 4; *p = tmp; } int main() { Pair p1, p2, p3; set_pair1(p1); set_pair2(&p2); set_pair3(&p3); printf("p1: %d %d\n", p1.first, p1.second); printf("p2: %d %d\n", p2.first, p2.second); printf("p3: %d %d\n", p3.first, p3.second); // ERRONOUS Pair *p4; set_pair3(p4); printf("p4: %d %d\n", p4->first, p4->second); return 0; }