ZZangZZang   1년 전

랭킹올리기 놀이 하던 중에 이 쉬운게 틀리길래 이것저것 시도해보다가. 뭔가 이상한 걸 알아냈습니다.

https://www.acmicpc.net/source/394969

이건 최초 제출 소스입니다. 틀렸습니다.

https://www.acmicpc.net/source/395004

이건 나중에 뭐가 어떻게 돌아가는지(?) 알게 된 뒤에 제출한 소스인데요. 그냥 buffer행 크기를 (1만큼) 바꿨더니... 맞았습니다.


소스를 보면 buffer[0]~buffer[3] 까지 밖에 접근을 안하는데 왜 엉뚱한 buffer[4]가 문제가 되는지 모르겠네요.

(설마 컴파일러 버그라면 무섭네요.) 이게 쉬운 문제여서 다행입니다.

yukariko   1년 전

제생각엔 그냥 오버플로우 문제가 아닌가싶네요.

입력을 잘 살펴보면 매 줄 5N + 1개의 문자가들아옵니다. N의 범위는 100까지니까

501개의 문자가들어오겠죠.

문자열에는 뒤에 널문자가 포함되므로 배열크기 501로는 오버플로우가 발생합니다.

문제 오류는 아닌거같네요. 배열크기를 502로 고치면 해결될 것 같습니다.

ZZangZZang   1년 전

아 감사합니다. 그걸 못봤네요 ㅠㅠ 501개인데 501을 그대로 적다니.

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