1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>

struct Dummy
{
    int a, b;
};

void
foo(struct Dummy dummy)
{
    dummy.a = 12;
    dummy.b = 34;
}

void
bar(struct Dummy *dummy)
{
    (*dummy).a = 12;
    (*dummy).b = 34;
}

int
main(void)
{
    struct Dummy d = { 1, 2 };

    foo(d);
    printf("After 'foo(d)': d.a = %d, d.b = %d\n", d.a, d.b);
    bar(&d);
    printf("After 'foo(d)': d.a = %d, d.b = %d\n", d.a, d.b);
}