Получение предупреждения "ISO C90 запрещает массив переменного размера" в компиляторе gcc при компиляции кода C90 - PullRequest
3 голосов
/ 23 января 2011

Я компилирую код C90 c в gcc.Я получаю предупреждение ISO C90 forbids variable-size array при создании объявления типа

int symbols[nc];

Где nc - целое число, значение которого читается из входного файла.Значения во входных файлах различны, поэтому я не могу сохранить постоянное значение.Как я могу избавиться от этого?Действительно ли необходимо устранить это предупреждение или мы можем просто проигнорировать его?

Заранее спасибо.

1 Ответ

5 голосов
/ 23 января 2011

Вы получаете это предупреждение, потому что C90 не поддерживает массивы переменной длины .

Вам нужно будет либо переключить gcc в режим C99 (который поддерживает vla), используя флаг командной строки -std = c99 или std = gnu99, либо переписать свой код для динамического выделения памяти или использовать массив фиксированного размера .

Предупреждение просто говорит вам, что вы не соответствует C90 в этом случае, но в остальном это безопасно. Игнорирование предупреждения на самом деле не должно быть вариантом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...