У меня есть структура, содержащая массивы другой структуры, она выглядит примерно так:
typedef struct bla Bla;
typedef struct point Point;
struct point
{
int x, y;
};
struct bla
{
int another_var;
Point *foo;
};
Теперь я хочу инициализировать их в глобальной области видимости. Они предназначены для описания модуля. Я пытался сделать это с составными литералами c99, но компилятору (gcc) это не понравилось:
Bla test =
{
0, (Point[]) {(Point){1, 2}, (Point){3, 4}}
};
Я получаю следующие ошибки:
error: initializer element is not constant error: (near initialization for 'test')
Поскольку мне не нужно его модифицировать, я могу поместить в него столько «const», сколько необходимо. Есть ли способ его скомпилировать?