더북(TheBook)

코드를 수행하면 우리가 입력한 문자열을 저장하고 그에 맞게 출력합니다. 그러나 abcdefghij처럼 문자의 개수가 10개가 넘어가면 다음과 같이 에러가 발생합니다.

그림 10-2 | 문자의 개수가 10개 이상이면 에러 발생

 

이유가 무엇일까요? 배열 b의 크기가 10이므로 널(NULL) 문자를 포함하여 9개의 문자를 저장할 수 있습니다. 그런데 abcdefghij처럼 10개 이상의 문자를 저장하려고 했기 때문에 실행 중에 에러가 발생한 것입니다.

그러면 이 문제를 해결하려면 어떻게 해야 할까요? 현재 코드에서 10자 이상의 문자를 저장하려면 배열 b의 크기를 확장하면 되겠지요. 하지만 얼마나 큰 크기의 문자열이 입력으로 들어올지 모르는 상황에서는 그 크기를 짐작할 수가 없습니다.

지금처럼 배열의 크기를 너무 작게 선언해도 문제가 발생하지만, 배열의 크기가 너무 커도 메모리 낭비라는 점에서 문제가 됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.