#cpp #массивы #gcc #mingw #codeblocks
Необходимо создать массив, размер которого заранее неизвестен (например, его размер
будет введён с клавиатуры). Наивное решение (неправильное):
int n;
std::cin >> n;
int mas[n];
Этот способ на некоторых компиляторах работает (например, на gcc). Какой флаг компиляции
нужно выставить, чтобы на это действие получить warning ? А лучше ошибку компиляции
(чтобы -Werror не ставить просто так).
Это необходимо в учебных целях, чтобы не объяснять детям тонкости стандарта и нестандартных
расширений компиляторов. Хочется им просто сказать, что так делать нельзя, что компилятор
это не скомпилирует (и защититься от фейла с gcc :) ).
Конкретнее, это будет использоваться в среде CodeBlocks, там компилятор MinGW.
Ответы
Ответ 1
Используйте -pedantic или -Wvla: warning: ISO C++ forbids variable length array 'mas' [-Wvla]
Комментариев нет:
Отправить комментарий