如何解决不允许初始化灵活数组成员
我在灵活数组上发现了一个 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 举报,一经查实,本站将立刻删除。