struct Foo { int x; int[*] y; // #error: flexible array member must be the last element int z; } struct Bar { int[*] y; // #error: flexible array member cannot be the only element } struct Baz { int y; int[*] z; } struct BazContainerOk { int z; Baz c; } struct BazContainer { Baz c; // #error: A struct member with a flexible array must be the last element. int y; } Baz[5] ab; // #error: Arrays of structs with flexible array members is not allowed.