У меня следующая структура
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
], как упоминалось выше) как мы можем создать экземпляр и инициализировать, как мы это делаем для обычных структур
?
Возможно ли это вообще? Если да, то как нам передать размер массива во время инициализации и фактическое значение для инициализации?
(или)
Верно ли, что единственный способ создать структуру с гибким массивом - это использовать malloc ()
, как указано в спецификации C99 - 6.7.2.1 Спецификаторы структуры и объединения - точка № 17
?!