【发布时间】:2017-10-15 12:00:48
【问题描述】:
我用 C 语言创建了一个简单的struct,用于存储我的数据:
typedef struct
{
int n;
char *c[];
} simstr;
并且,对于这个结构变量的赋值,我使用了这个代码:
simstr ex =
{
5,
"ex_11",
"ex_12",
"ex_13",
"ex_14",
"ex_15"
};
为了测试是否正确创建了ex 变量,我运行了我制作的这个函数:
void funct(simstr a)
{
int i,
n = a.n;
for (i = 0; i < n; i++)
{
printf("%s\n", a.c[i]);
}
}
funct(ex);
我编译成功了。不幸的是,它返回 2 行 Θ&;然后,该程序因运行时错误而停止。
你能告诉我:为什么分配struct会出错?以及如何解决?
【问题讨论】:
-
你能给我解释一下:有一个奉献者吗?
-
另外,灵活数组成员的初始化不符合标准;并且聚合初始化器需要
{}括号括起来。你正在使用一些 GCC 扩展或类似的东西。