У меня есть структура, которая содержит массивы другой структуры, она выглядит примерно так:
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», сколько необходимо. Есть ли способ скомпилировать его?