Я думаю, что имеется в виду:
struct foo {
... some data members, maybe the length of bar ...
char bar[]; /* last member of foo, char is just an example */
};
Используется путем выделения с malloc(sizeof(struct foo)+LEN)
, где LEN - желаемая длина bar
.Таким образом, требуется только один malloc.[]
может использоваться только с последним членом структуры.
И, насколько я понимаю, документ GCC, struct foo
также может (разумно) использоваться только как последний член другой структуры, потому чторазмер хранилища не фиксирован - или как указатель.