質問です。
要素を変更するプログラムについて、

char array[] = "hoge\n";
array[2] = 'G';

これはOKなのですが、

char *str = "hoge\n";
str[2] = 'G';

はセグメンテーションエラーになります。

何でですか?