问题描述
我在灵活数组上发现了一个 GNU C documentation,他们说你可以这样初始化它们:
struct foo { int x; int y[]; };
struct bar { struct foo z; };
struct foo a = { 1,{ 2,3,4 } }; // Valid.
struct bar b = { { 1,4 } } }; // Invalid.
struct bar c = { { 1,{ } } }; // Valid.
struct foo d[1] = { { 1,4 } } }; // Invalid
但是当我尝试执行第一个有效案例(使用结构 a
)时,gcc 抛出 error: Initialization of flexible array member is not allowed
。那么这是不推荐使用的还是有另一种方法可以在没有 malloc
的情况下做到这一点?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)