ooghkoo   7년 전

계속 런타임 에러가 나는데 원인을 모르겠습니다...

혹시 의심가는 부분 알려주실 수 있을까요?

kdk8361   7년 전

k가 10000이면 create_input에서 10001까지 액세스하네요.

kdk8361   7년 전

unsigned int라서 j-input[i] < 0 인 경우 오버플로우가 일어납니다. unsigned int(-1)은 4294967295가 되는거죠. if 내부에서는 j-input[i]>=0이 항상 true기 때문에 output이 참조하는 곳이 영 엉뚱한 곳이 됩니다.

ooghkoo   7년 전

감사합니다. 해결됐네요.

저는 j - input[i] 의 경우 j는 int형이고 input[i]만 unsigned여서 어짜피 음수나오면 잘 돌아갈줄 알았는데, 말씀해주신것처럼 동작하는지는 몰랐네요..

여기서  unsigned int로형 변환이 일어나는건가요? 음수가 나오면 이걸 결국 unsigned int형 방식으로 캐스팅돼서 상당히 큰양수로 인식된다고 이해하면되는걸까요?

 계속 배울점이 나오네요~..감사합니다..

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