C:struct的数组(包含int和另一个struct的另一个数组)

Jas*_*min 0 c arrays struct

struct dataStruct {     const char* s;     int num; }; 

struct Final_struct {     int n;     dataStruct a[]; }; 
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试按如下方式初始化Final_struct时,会出现问题:

const Final_struct Example[]= {
                                {100, { {"age", 20}, {"iq", 120}, {"bmi",26} } },
                                {100, { {"age", 36}, {"iq", 145}, {"bmi",22} }}
};
Run Code Online (Sandbox Code Playgroud)

它是交响代码,当我尝试编译时会给出编译错误:

Fields of the object can not have arrrays of size 0

有什么建议?

谢谢.

Bla*_*iev 5

dataStruct a[]将struct的成员定义为size数组0.这几乎没用.您需要在定义中指定其大小,struct因为编译器需要struct事先知道整个大小.

或者,您可以简单地将字段声明为dataStruct *a,然后数组本身将不包含在struct.