문자열 입력받을때 질문드려요
, blaq kippah님이 작성c언어에서는 문자열을 입력받을때
배열로 선언하든 포인터를 선언하든 상관없이 항상 미리 크기를 지정해주어야 하나요?
코드를 비쥬얼 스튜디오에서 안돌리고 repl.it 이라는 웹창에서 돌려봤더니 아래 코드가 돌아가길래 되는줄 알고 좋아했습니다.. 근데 비쥬얼 스튜디오에서는 안되더군요.
#include <stdio.h>
int main(void)
{
char* str;
printf("Enter string: ");
scanf("%[^\n]s", str);
printf("%s\n", str);
return 0;
}
c언어는 다른 현대 언어들처럼은 문자열을 입력 받을 수 없나요?
크기를 미리 지정하지 않고 입력한 크기만큼 메모리를 알아서 할당해준다면 너무 편할것 같은데 위의 코드가 되는줄 알고 너무 좋아했었네요;
포인터로 하면 되는줄 알았는데..malloc을 써야하고 그럴바엔 그럼 배열로 편하게 선언하는게 최선이네요. 다만 미리 크기를 지정해주어야하는게 너무 귀찮아서 질문드려봅니다.