1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
struct g{}; char y[3]; char *f = &y[0]; char *ff = &y[0]; void h(void) { struct g t; *((struct g*)(f++)) = *((struct g*)(ff++)); *((struct g*)(f++)) = (struct g){}; t = *((struct g*)(ff++)); } void abort (void); int main(void) { h(); if (f != &y[2]) abort(); if (ff != &y[2]) abort(); return 0; }