我真的无法理解在C语言中创建结构体数组的正确语法。我尝试了以下方法:
struct foo {
int x;
int y;
} foo[][] = {
{
{ 1, 2 },
{ 4, 5 },
{ -1, -1 }
},
{
{ 55, 44 }
{ 100, 200 },
}
};
例如,foo[1][0].x == 100,foo[0][1].y == 5等等。但是GCC会输出很多错误。
如果有人能提供正确的语法,那就太好了。
编辑:好吧,我尝试了这个:
struct foo {
const char *x;
int y;
};
struct foo bar[2][] = {
{
{ "A", 1 },
{ "B", 2 },
{ NULL, -1 },
},
{
{ "AA", 11 },
{ "BB", 22 },
{ NULL, -1 },
},
{
{ "ZZ", 11 },
{ "YY", 22 },
{ NULL, -1 },
},
{
{ "XX", 11 },
{ "UU", 22 },
{ NULL, -1 },
},
};
但GCC给我报错:"bar数组的元素类型不完整"和"数组初始化器中有多余的元素"。