Для жизни я не могу понять правильный синтаксис для создания массива структур в 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 имеют неполный тип» и «лишние элементы в инициализаторе массива».