Как инициализировать структуру с гибким членом массива
У меня следующая структура
typedef struct _person {
int age;
char sex;
char name[];
}person;
Я выполнил базовый поиск в Интернете (но безуспешно) о том, как создать экземпляр и инициализировать структуру с помощью элемента гибкого массива, не используяmalloc()
.
Например: для нормальных структур, таких как
struct a {
int age;
int sex;
};
Мы можем создать экземплярstruct a
и инициализировать его как
struct a p1 = {10, 'm'};
Но для структур с гибким массивом в нем (как_person
как уже упоминалось выше) как мы можем создать экземпляр и инициализировать, как мы делаем это для нормальногоstructures
?
Это вообще возможно? Если так, как мы передаем размер массива во время инициализации и фактическое значение, которое будет инициализировано?
(или же)
Правда ли, что единственный способ создать структуру с гибким массивом - этоmalloc()
как указано в спецификации C99 -6.7.2.1 Structure and union specifiers - point #17
?!