devbelly   4년 전

자꾸 무한루프를 돌아요.......이문제 어떻게 풀어야할지 몰라서 다른분 소스 참고하면서 쓴건데도 못풀겠어요 ㅠㅠㅠㅠ 아 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ 떙깡부려버리기~! 히힛

lovinix   4년 전

s1[i] != s1[++i] 과 같은 코드는 올바른 코드가 아닙니다.

시퀀스포인트 위배로 undefined behavior 입니다.

!=는 시퀀스포인트가 아니기 때문의 앞의 s1[i]의 값이 먼저 평가될지 s1[++i]의 값이 먼저 평가될지 알 수가 없고, 어느쪽을 먼저 평가하는지에 따라 가변적인 결과가 나올 수 있습니다.

다만 이 결과는 os에 의존적인것은 아니고 사용하고있는 컴파일러에 따라 나오는 것이지만 어쨌든 @krhyunsoo 님이 쓰신것처럼 반드시 고쳐쓰셔야합니다.

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