With Fields
p = malloc(); // πβ β pts(p) where πβ represents the location returned from malloc.
p = &x; // loc(x) β pts(p)
p = q; // pts(p) β pts(q)
*p = q; // pts(*p) β pts(q)
p = *q; // pts(p) β pts(*q)
p.f = q; // pts(p.f) β pts(q)
p = q.f; // pts(p) β pts(q.f)
x = malloc();
t1 = *x;
t2 = t1.n;
t2 = malloc();
y = malloc();
y = x;
t3 = *t2;
t3.a = 20;
t4 = *y;
t4.n = NULL;
t5 = *x;
t6 = t5.n;
t7 = *t6;
z = t7.a;