einsteins   4년 전

제가 제출한 코드중에 계속 틀렸다고 나와서 확인해보니까..

for 2중 루프 안에

동일한 if (num >= 4) break; 을 두번 써주었더니 뒤에있는놈이 사라진것처럼 동작합니다;;

루프를 못나오더군요;;

컴파일러 이상인가요;;

( if (map[temp_y][temp_x].num >= 4) break; // 루프를 못나옵니다. ) 이부분을 아에 못나오네요.

그냥 break; 안하고 return 하는 등 하면 해결됩니다.

Green55   4년 전

제출하신 코드를 그대로 올려주시는게 아니면 알 수가 없습니다.

einsteins   4년 전

수정하였습니다.

unused   4년 전

컴파일러 버그가 아닙니다. temp_y와 temp_x가 맵의 범위, 심지어는 배열의 범위(0부터 12)를 벗어나는 경우가 있어서 빠져나오지 않아야 할 루프도 빠져나오기 때문입니다.


참고로 컴파일러에 버그가 있는 경우는 거의 없습니다. 코드의 로직 버그인 경우가 대다수입니다.

einsteins   4년 전

이해했습니다. temp_y, temp_x가 초과되어서 for문 나오게되는데도 조건문 검색을하게되어 할당되지않는 메모리영역 건드네요.

댓글을 작성하려면 로그인해야 합니다.