Почему некоторые структуры используют массив из одного элемента, например:
typedef struct Bitmapset { int nwords; uint32 words[1]; } Bitmapset;
Чтобы сделать его удобным для последнего динамического выделения?