스피커 1의 지금 해결하자 그 마지막 프로그램입니다. 그리고이 시간은의이 명시 적으로 할당 할 일부 메모리있는 사용자의 입력이 저장됩니다. 이렇게하기 위해, 그 첫 번째에 연마하자 우리의 선언 코드의 라인 이전에 문자 스타가 될 수 있습니다. 이 시간은,하자 다시 선언 그것은 다음과 같은 - 문자의 브래킷 (16), 예를 들면, 대괄호. 즉,의 더에의를 선언 할 수 있도록 더 이상 문자의 주소, 하지만 16 자 오히려 배열. 이 방법은 사용자가 최대 15를 입력 할 수 있습니다 문자와 아직 여지를 남겨 널 (NULL) 종료. 저장을의 계속하자, 컴파일, 이 프로그램을 실행합니다. scanf2 점 슬래시 scanf2을 확인합니다. 의 지금 안녕하세요 같은 문자열을 입력하자 우리는 인사에 대한 감사입니다. 자, 문제는 여전히있다. 난 단지 만입니다, 안녕하세요에서 입력 널 다섯 글자, 플러스 1 터미네이터. 그것은 단지 우리를 잎 6 바이트가 필요. 그러나 불행하게도, 우리는 단지 총 16 할당. 따라서 만약 16에서 사용자가 실제로 형식 문자 또는 17 또는 수백 자, 우리는 여전히 않을 거고 메모리에 충분한 공간이 사용자의 입력. 그리고 사실,이 만드는 것입니다 사용자 입력을 받고 있으므로 일반적으로 어렵다. 우리가 구현하는 이유 그리고 사실,이는 처음에 GET 문자열 기능 CS50 라이브러리의 장소 - 사람들을 처리하는 방법을 알아 내기 위해 상황을 어디에 사용자 유형에 우리보다 더 많은 문자 처음에 예상. 솔직히없이 완전히 이 프로그램을 다시 작성하는 것은, 해결법은 없습니다. 오히려, 우리가 수행해야하는 것은 얻을 수있다 에서 사용자가 하나의 문자 시간, 또 다시. 그리고 각 지점에서 우리는 우리가있어 실현하는 경우 메모리 부족, 우리의에있을 것 그 점에 돌아가서 재 할당 일부 메모리는 사용자의 복사 우리의 첫 번째 청크에서 이전 입력 새에 메모리, 메모리의 큰 덩어리. 그리고 다시 그 과정을 반복하고 사용자가 제공 할 때까지 행해진 다 다시 자신의 입력.