Pointers in C
Pointers in depth
Pointers and structures
Arrays of length zero
struct foo { int x; int y[]; };
struct bar { struct foo z; };
struct foo a = { 1, {2, 3, 4} }; // Valid.
struct bar b = { { 1, {2, 3, 4} } }; // Invalid.
struct bar c = { { 1, {} } }; // Valid.
struct foo d[1] = { { 1, {2, 3, 4} } }; // Invalid.