jaehoo1   5년 전

비주얼 스튜디오 디버그, 릴리즈 모드 둘다 잘 돌아갑니다...

헌데 ideone.com에서는 바로 틀린 케이스가 나오더군요...

컴파일러 차이를 어떻게 극복해야할지 조언을 구해봅니다

bupjae   5년 전

6번째 줄에서 arr가 초기화되지 않았습니다.


예를 들어 Rev("132", 3) 을 호출했다면

num의 내용은 {'1', '3', '2', '\0', <뭔지 모름>} 인데

8~9번째 줄 for 반복문을 끝마친 후의 arr의 내용은 {'2', '3', '1', <뭔지 모름>, <뭔지 모름>} 가 됩니다.

sscanf 는 숫자가 아닌 글자를 만날 때 까지 찾아내서 정수로 변환하려고 하는데, arr 의 <뭔지 모름> 부분이 실제로 숫자였다면 잘못된 결과를 반환하게 됩니다.

jaehoo1   5년 전

아하 그렇군요! 감사합니다 해결됬네요.

비주얼친구는 왜 이걸 잡아내지 못하는지...

bupjae   5년 전

여기서 VC++가 잘못한 건 없다고 생각합니다.

<뭔지 모름>에 어떤 값이 들어가 있는지 확인할 의무는 VC++도 gcc도 없거든요.

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