버퍼가 없는 상태에서 입력을 받는다는게 말이 안되는 소립니다.
대부분의 문제에서 문자열 입력이 있는 경우 문자열의 최대길이를 명시하므로 그 길이에 맞게 버퍼를 만들어두면 됩니다.
만약 최대 입력 길이를 알 수 없는 경우라면 문자 혹은 고정길이 버퍼 단위로 읽어서 realloc 등을 통해 메모리 할당을 늘리는 식으로 구현해야합니다
버퍼가 없는 상태에서 입력을 받는다는게 말이 안되는 소립니다.
대부분의 문제에서 문자열 입력이 있는 경우 문자열의 최대길이를 명시하므로 그 길이에 맞게 버퍼를 만들어두면 됩니다.
만약 최대 입력 길이를 알 수 없는 경우라면 문자 혹은 고정길이 버퍼 단위로 읽어서 realloc 등을 통해 메모리 할당을 늘리는 식으로 구현해야합니다
댓글을 작성하려면 로그인해야 합니다.
lsmmay322 3년 전
c언어에서 먼저 char *str처럼 문자열을 받을 변수를 포인터로 설정해놓고
scanf("%s", str)로 문자열 입력을 받은 후 입력받은 문자열 크기만큼 str에 메모리를 동적할당 하는법은 없나요?
무조건 str을 넉넉하하게 동적할당을 받고 문자열 입력받는 수밖에 없나요?
아래 코딩처럼
위 코딩은 먼저 문자열 입력받고 메모리 크기를 변수에 넣어주는 순서
아래는 먼저 변수에 넣어줄 문자열 메모리 크기를 크게 잡고 동적메모리 할당 후 문자열 입력
제가 위 방식의 코딩은 몰라서 예를 들어서 짜본겁니다.