h_a_c_k_e_r   3년 전

일단 예제는 다 맞게 나오는데 틀렸다고 뜨네요

뭔가 배열 크기가 문제인 것 같아서 배열 크기도 늘려봤는데 역시 틀렸다고 뜹니다 

39dll   3년 전

제가 돌려보니까 예제 4번째 테스트 케이스의 답이 56으로 나오네요.

h_a_c_k_e_r   3년 전

어 그러네요 근데 어떤 상황에서는 맞는 답인 55로 뜨는데 어떤 상황에서는 56으로 뜨는 건 왜 그런 거죠? 디버깅을 해 봤는데 못 찾겠더라고요 

39dll   3년 전

아마도 Undefined Behavior일 가능성이 큰 것 같습니다.

https://www.secmem.org/blog/20...

h_a_c_k_e_r   3년 전

Undefined Behavior라.. 유용한 정보 감사합니다

그런데 Undefined Behavior가 발생할 곳이 없는 것 같은데요.. 범위를 벗어나서 배열에 접근하지도 않은 것 같고 

변수들도 다 초기화 해 줬고 오버플로우가 일어날 상황도 아닌 것 같은데 

h_a_c_k_e_r   3년 전

비슷한 상황인 다른 질문글 보고 드디어 해결했습니다 감사합니다 

39dll   3년 전

char arr[81] = {0,};

이 줄을 지우고

memset(arr, 0, sizeof(arr));으로 초기화해주니까 맞네요.

배열 초기화에서 문제가 생겼던 것 같아요

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