我有以下结构
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
?!