Нет доступных завершений, странное поведение Eclipse

Вы используете то, что называется массивом переменной длины , однако есть проблема. В C каждая структура должна иметь определенную длину байта, так что, например, sizeof(struct image) можно оценить. В вашем случае размер массива переменной длины не может быть определен во время компиляции, поэтому он является незаконным.

В другом случае вам, вероятно, нужны указатели вместо массивов объявленной длины:

typedef struct image
{
    int width;
    int heigth;
    struct pixel **pixels;
};

Отказ от ответственности: ВЛАСы в структурах иногда допускаются, хотя это вопрос, если это расширение является скорее ошибкой, чем функцией. См.: Недокументированное расширение GCC: VLA в struct

Изменить: remyabel указывает на документы GCC, которые говорят о редких ситуациях, в которых VLAs в структурах в порядке: https: //gcc.gnu.org/onlinedocs/gcc/Variable-Length.html#Variable-Length

23
задан Community 23 May 2017 в 10:29
поделиться