У меня есть структура, которая содержит массивы другой структуры, это выглядит примерно так:Вложенные структуры/массивы инициализации
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», сколько необходимо. Есть ли способ скомпилировать его?
Разве это динамически выделяет память для двух «точек»? – aib 2008-12-16 01:28:37