Cの非常に初歩的な疑問なんですが、

char *str = "hoge";

とするとポインタ str には文字列 "hoge" の初めの文字のアドレスが入るんですよね。
ということは、この初期化時にそのアドレスから文字列5バイト分確保されるんですか?


char *str = "hoge"
char str[] = "hoge"

これを比べた時に何が違うのかよく分からないのです