2017-12-04 3 views
0

"world"라는 2D 배열을 인쇄하는 클래스에 "printWorld"라는 함수가 있습니다. 이 함수를 사용하여 터미널에서 프로그램을 실행할 때마다 배열을 인쇄하지만 대량의 난수가 나오고 결국에는 "Segmentation Fault"라고 나와 프로그램을 닫습니다. 최대한 빨리 모든 기능이 작동하지만 코드에서이 함수를 제거하면됩니다.클래스 함수의 세그먼트 오류

void printWorld() 
{ 
    for(int r = 0; r <= (2*WORLD_SIZE + 1); r++) 
    { 
     for(int c = 0; r <= (2*WORLD_SIZE + 1); c++) 
      cout << world[r][c]; 
     cout << endl; 
    } 
} 

이 함수가 나는 함수를 호출하고있어 방법이이 클래스

game.printWorld(); 

로 작성하는 방법입니다. 그것이 내가이 배열은 다른 사람이 이미 언급 한 바와 같이 0

+4

'<=의''for' 루프의 조건으로 내가 버그 냄새 –

+0

배열의 크기는 얼마입니까? 선언문을 보여줘. –

+1

왜냐하면 'for (int c = 0; r <= (2 * WORLD_SIZE + 1); C++)'가 무한 루프이기 때문입니다 ('r '이 범위에서 결코 변경되지 않기 때문에 조건이 한 번 true라고 가정합니다) 그 루프의). 'c <= ...'를 의미 했습니까? – scohe001

답변

2

모든 초기화가 도움이된다면

This is what is showing in termninal

가, 실수가 'r에 비교할 루프 내부입니다 < = (2 * WORLD_SIZE + 1) '

이렇게하면 무한 루프가 발생합니다.

변경 내부 루프가 되려면 : 당신을 위해 무엇을해야

for(int c = 0; c <= (2*WORLD_SIZE + 1); c++) 
     cout << world[r][c]; 
    cout << endl; 

이 : 사람들이 사용하는 경우)