문자열은 그 정의상 널 문자가 무조건 있어야 됩니다. 널 문자가 없다면 문자열이라고 부를 수 없습니다. 모든 표준 문자열 함수들 역시 반드시 널 문자를 삽입하고, 널 문자의 위치를 문자열의 끝으로 봅니다.
이 코드 역시 널 문자는 배열의 범위를 한 칸 넘어서 들어가버리지만, 1바이트 침범하는 것 정도로는 오류가 나지 않을 가능성이 높기 때문에 운 좋게 통과된 것일 뿐입니다. 원칙적으로는 배열의 크기도 10만 1 이상이 되어야 합니다.
12813번 - 이진수 연산
djm03178 //음.. 아직 이해가 가지 않는데요 만약에 char number[SIZE]을 선언하고 전 순수하게 숫자 1,2,3 만 입력 받고 싶다해도 사이즈가 4가 되어야하나요?
char number[3]={1,2,3}; 이건 분명 문제가 없는 코드인데 입력을 받으면 char number[4] 이렇게 되어야 한다는 것 맞나요?
seaoffizier //감사합니다~!
djm03178 // 문자열과 char형의 배열은 어떻게 구분할 수 있나요?? 널 문자가 있고 없고의 차이인가요?
djm03178 //아 알겠습니다 감사합니다!
댓글을 작성하려면 로그인해야 합니다.
injoon2018 5년 전
이 문제에서 저는 그냥 배열의 길이를 char number1[100000]이렇게 성공하고 맞았습니다.
하지만 다른 맞은 분들 코드를 보니 다 100000+1 을 해놨습니다.
문자열의 경우 마지막에 NULL 문자가 자동으로 삽입된다고 알고 있습니다.
그러면 어떤 경우에는 문자열로 입력을 받고 어떤 경우에는 문자 배열로 입력을 받나요??