백준 2589
http://boj.kr/5cd976142822471ca985a4792d204455
인데 27,28 line 에서
fill(&visited[0][0], &visited[50][50], 0);
fill(&dist[0][0], &dist[50][50], 0);
로 초기화 하면 틀렸습니다가 뜨는데
for (int i = 0; i < 50; i++) {
for (int j = 0; j < 50; j++) {
visited[i][j] = 0;
dist[i][j] = 0;
}
}
그냥 포문 돌리면 맞았습니다가 뜹니다.
fill함수가 이상한가 싶어서 값들을 출력해봐도 초기화는 정상적으로 됐습니다.
혹시 왜 이러는지 알 수 있을까요?
끝을 [49][50]으로 해보세요
말씀해주신대로 수정하니 맞았습니다가 나오네요
혹시 arr[50][50]인데도 [49][50]으로 해야하는 이유를 알 수 있을까요?
이차원배열은 실제 메모리 구조상에서는 일차원으로 나열되어있어요
arr의 실제 범위는 arr[49][49]까지 이므로 그 바로 다음 주소를 end로 넣어줘야함미다
아하.. 감사합니다. 덕분에 이해했습니다