2개의 댓글이 있습니다.
-
-
Arine -
컴파일 옵션이나 환경, 컴파일러 등에 따라 전역변수도 초기화하지 않으면 예상치 못한 값이 들어가는 경우가 있는 것 같습니다. 입력 부분에서 아래 줄이 문제가 된 것으로 보이는데요
mod[pbox[i]]++;
pbox를 직접 초기화하지 않아 mod 배열의 인덱스를 넘어가기 때문에 런타임 에러가 발생한 것 같습니다.답변과는 별개의 이야기로, 런타임 에러가 날 때 의심해 볼 만한 이유로는
- 배열의 인덱스를 넘어가는 경우 (잘못된 메모리를 참조하는 경우)
- 0으로 나누는 경우
등이 있습니다. 첫 번째가 가장 흔한 경우죠. 그러므로 위와 같은 경우가 발생할 것 같은 그런 곳에 assert등으로 확인을 하거나 커맨트 블락으로 만들어버린 후, 런타임 에러가 날 때 까지 하나하나 언커맨트 하는... 그런 간단한 방법으로도 금방 어느 지점이 문제인지 찾을 수 있습니다. 다음에 이런 문제를 만난다면 스스로 디버깅을 한 번 시도해 보세요 ;)
8년 전 link
-
-
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
rdd6584
CHRISTMAS 문제입니다. 위 코드가 C로 제출시 런타임에러가 발생하는데, C++로 제출시에는 에러가 나지 않는 이유가 궁금합니다.
8년 전