Доброго времени суток. Недавно пробовал написать простой «морской бой» на g++ и вот что получил: Компилятор (все по дефолту) некорректно обрабатывает циклы и не всегда правильно работает с массивами. Я и раньше замечал подобное, но сейчас у меня появилась реальная проблема.
int Field1[9][9];
for (int x=0;x<10;x++)
{
for (int y=0;y<10;y++)
{
Field1[x][y]=0; cout << x << y;}
}
Программа элементарная. Однако: 1. [6][9],[7][9],[8][9],[9][9] элементы массива заполняются элементами, взятыми «с потолка»; 2.С чего-то вдруг компилятор превратил for в бесконечный цикл, так что программа вообще не завершается сама.
Причем на Dev-C++ под виндой все прекрасно присваивается и выводится( правда, некорректное завершение работы происходит).Обидно, знаете. Надеюсь на вашу помощь.
Правка №1:
Господа, обратите внимание! Массивы начинаются с НУЛЯ, не с единицы. Там 10 элементов. А в цикле если x/y < 10 (10 не меньше 10), то все работает нормально. То есть, значения x и y меняются с 0 до 9. Пожалуйста, проверяйте прогу, прежде чем комментировать. У меня есть повод говорить о баге компилятора, поскольку под окнами все отлично работает.