У меня есть следующая структура
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?!