Вообщем есть цикл в цикле, который манипулирует с двумерными матрицами:
for(int i = 0; i < x; ++i) {
for(int j = 0; j < y; ++j) {
int x1 = i, y1 = j;
if(((abs(x1 - GO.x) == 1) || (abs(y1 - GO.y) == 1)) && *(desk+x1+y1))
GOnbr[i][j] = abs(STAY.startX - x1) > abs(STAY.startY - y1) ? x-abs(STAY.startX - x1) : y-abs(STAY.startY - y1);
else
GOnbr[i][j] = 0;
if((i - STAY.x >= -1 && i - STAY.x <= 1) && (j - STAY.y >= -1 && j - STAY.y <= 1) && !(i - STAY.x == 0 && j - STAY.y == 0) && *(desk+i+j))
STAYnbr[i][j] = 0;
else
STAYnbr[i][j] = 1;
GOnbr[i][j]*=STAYnbr[i][j];
cout << j << ' ' << i << endl;
}
}
Извиняюсь за говноусловие во втором ифе, оно должно быть таким же как в первом, но оно ему тождественно.
Так вот, это вот почему-то выводит:
...
0 0
1 0
2 0
0 1
1 1
2 1
0 2
1 2
2 2
0 3
1 3
2 3
0 0
1 0
2 0
0 1
1 1
2 1
0 2
1 2
2 2
...
И так пока не остановишь. Помогите, пожалуйста. Пробовал двумя компиляторами: clang и gcc 4.8. OS X 9