코드를 수행하면 우리가 입력한 문자열을 저장하고 그에 맞게 출력합니다. 그러나 abcdefghij처럼 문자의 개수가 10개가 넘어가면 다음과 같이 에러가 발생합니다.
그림 10-2 | 문자의 개수가 10개 이상이면 에러 발생
이유가 무엇일까요? 배열 b의 크기가 10이므로 널(NULL) 문자를 포함하여 9개의 문자를 저장할 수 있습니다. 그런데 abcdefghij처럼 10개 이상의 문자를 저장하려고 했기 때문에 실행 중에 에러가 발생한 것입니다.
그러면 이 문제를 해결하려면 어떻게 해야 할까요? 현재 코드에서 10자 이상의 문자를 저장하려면 배열 b의 크기를 확장하면 되겠지요. 하지만 얼마나 큰 크기의 문자열이 입력으로 들어올지 모르는 상황에서는 그 크기를 짐작할 수가 없습니다.
지금처럼 배열의 크기를 너무 작게 선언해도 문제가 발생하지만, 배열의 크기가 너무 커도 메모리 낭비라는 점에서 문제가 됩니다.