injoon2018   5년 전

이 문제에서 저는 그냥 배열의 길이를 char number1[100000]이렇게 성공하고 맞았습니다.

하지만 다른 맞은 분들 코드를 보니 다 100000+1 을 해놨습니다. 

문자열의 경우 마지막에 NULL 문자가 자동으로 삽입된다고 알고 있습니다.

그러면 어떤 경우에는 문자열로 입력을 받고 어떤 경우에는 문자 배열로 입력을 받나요??

djm03178   5년 전

문자열은 그 정의상 널 문자가 무조건 있어야 됩니다. 널 문자가 없다면 문자열이라고 부를 수 없습니다. 모든 표준 문자열 함수들 역시 반드시 널 문자를 삽입하고, 널 문자의 위치를 문자열의 끝으로 봅니다.

이 코드 역시 널 문자는 배열의 범위를 한 칸 넘어서 들어가버리지만, 1바이트 침범하는 것 정도로는 오류가 나지 않을 가능성이 높기 때문에 운 좋게 통과된 것일 뿐입니다. 원칙적으로는 배열의 크기도 10만 1 이상이 되어야 합니다.

injoon2018   5년 전

djm03178  //음.. 아직 이해가 가지 않는데요 만약에 char number[SIZE]을 선언하고 전 순수하게 숫자 1,2,3 만 입력 받고 싶다해도 사이즈가 4가 되어야하나요?


     char number[3]={1,2,3};   이건 분명 문제가 없는 코드인데 입력을 받으면 char number[4] 이렇게 되어야 한다는 것 맞나요?

djm03178   5년 전

말씀하신 예는 문자열이 아니라 그냥 char형의 배열이니 널 문자가 필요하지 않습니다.

injoon2018   5년 전

seaoffizier  //감사합니다~!

injoon2018   5년 전

djm03178  // 문자열과 char형의 배열은 어떻게 구분할 수 있나요?? 널 문자가 있고 없고의 차이인가요?

djm03178   5년 전

문자열을 담기 위해 연속된 char형을 사용하는 것입니다.

injoon2018   5년 전

djm03178  //아 알겠습니다 감사합니다!

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