lsmmay322   3년 전

비쥬얼 스튜디오에서 돌릴때는 결과가 잘 나오는데 채점해보니까 틀리다고 나오네요...

어떤 예외가 있는지 알려주실 수 있으신가요

palilo   3년 전

여기사 i가 26이 된 상태로

if문이 실행되서 이상한 결과가 나옵니다.

lsmmay322   3년 전

i = 0으로 초기화 해줬는데 문제가 생긴건가요????

lsmmay322   3년 전

아래 소스코드처럼 해주니까 되는데 while(i++)랑 따로 i++해준거랑 어떤차이가 있는건가요??

lsmmay322   3년 전

wihle(i++ < 26)이랑 

아래 두 코드는 메커니즘은 같은거 아닌가요??

palilo   3년 전

아니요

lsmmay322   3년 전

귀찮게 해드려서 죄송합니다ㅜㅜ 한가지만 더 여쭤볼게요

위 코드에서 max를 str[0];으로 0번째 배열로 지정을 해줬기 떄문에

1번쨰 배열부터 비교를 하려고 while(i++)를 해주었는데, i = 24일때 25번째 배열까지 다 비교를 해주고 i = 25일때 i = 26이 되기 때문에 

str[26]은 존재하지 않으므로 문제가 생기는건가요??

palilo   3년 전

"존재하지 않는다" 는 개념 자체가 잘못됐습니다.

printf 로 str[26]을 출력해보세요 값이 출력됩니다.

str 주소로부터 sizeof(int) 만큼 26칸 떨어진 지점은 메모리에 존재합니다.

거기에 무슨 값이 들어있을지, 어떤 변수가 저장되어 있는지는 모릅니다.

str[26]은 0일수도 있고 1일수도있고 313511531일수도 있어요.

쓰레기값이라고 하죠.

그래서 이상한 결과가 나옵니다.

lsmmay322   3년 전

아아 이해됬습니다 감사합니다 ㅎㅎ

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