struct dataStruct { const char* s; int num; };
struct Final_struct { int n; dataStruct a[]; };
现在当我尝试如下初始化 Final_struct 时出现问题:
const Final_struct Example[]= {
{100, { {"age", 20}, {"iq", 120}, {"bmi",26} } },
{100, { {"age", 36}, {"iq", 145}, {"bmi",22} }}
};
这是一个 C 代码,当我尝试编译它时出现编译器错误:
对象的字段不能有大小为 0 的数组
有什么建议吗?
谢谢。
最佳答案
dataStruct a[]
将结构的成员定义为大小为 0
的数组。这实际上是无用的。您需要在 struct
的定义中指定其大小,因为编译器需要提前知道整个 struct
的大小。
或者,您可以简单地将字段声明为 dataStruct *a
,然后数组本身将不包含在 struct
中。
关于C : array of struct (which holds an int and another array of another struct),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6303677/