Как инициализировать структуру с помощью гибкого элемента массива

У меня следующая структура

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 ?!

22
задан Sangeeth Saravanaraj 31 December 2011 в 10:45
поделиться