athenathdus   3년 전

13번째 줄에서 틀렸다는 부분을 8958 질문을 보며 알게되었습니다.

왜 이렇게 입력하면 scanf("%s", &test[i]);  런타임 에러가 나는지 전혀 모르겠습니다 ㅠㅠ

저렇게 배열의 주소 부분을 받을떄 scanf("%s",test)이렇게 배열이름 하나만 써야하는지, 위 예시 처럼 썼을때 왜 오류가 나는지 알려주시면 정말 감사하겠습니다 !! 

djm03178   3년 전

&test[i]라는 건 test 배열의 i번째 원소의 주소값입니다. test 자체를 문자열로 저장하려고 하는 것이니까 항상 test[0]의 주소부터 쓰기 시작해야 하는데, 이 코드는 처음 루프에서는 test[0]부터 쓰고, 그 다음 루프에서는 test[1]부터 쓰고, 그 다음 루프에서는 test[2]부터 쓰고... 하기 때문에 의도와 다른 결과가 됩니다.

꼭 이 형태로 쓰고 싶다면 &test[i] 대신에 &test[0]을 써도 됩니다.

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