C프로그래밍 파워 업그레이드 Q2

  1 #include <stdio.h>
  2
  3 int main()
  4 {
  5     char * s;
  6
  7     printf("문자열 입력 :");
  8     scanf("%s", s);
  9     printf("입력된 문자열 : %s\n", s);
 10
 11     return 0;
 12 }

이걸 실행하고 문자열을 입력하면
문자열 입력 : abc
입력된 문자열 : (null)

이렇게 출력 되는데 왜 이러는 거지?

  1 #include <stdio.h>
  2 #include <string.h>
  3 int main()
  4 {
  5     char str[10];
  6
  7     printf("문자열 입력 :");
  8     fgets(str, sizeof(str), stdin);
  9     str[strlen(str)-1] = '\0';
 10     printf("입력된 문자열 : %s\n", str);
 11
 12     return 0;
 13 }

이렇게 하니까 되긴 하는데
위에 것이 안되는 이유는 정확히 모르겠다.