char *str;
で宣言したあとに
scanf("%s",str);
とすると「strを初期化せずに使うな」みたいなエラーが出ます
char str[10];
みたいに配列で宣言するとエラーは出ません

ポインタで宣言した時のと配列で宣言した時のstrは同じ物ではないんですか?
あと値が使われるわけでもなく、入力されるだけなのに初期化しなければいけない必要性がわかりません
誰か教えてください