次のコードを書きました。
int main()
{
char *str = "hello";
str[0] = 'H';
printf("%s\n", str);
}
これにより、セグメンテーション違反が発生します。理由がわかりません。
strありpointer to charませんconst char。その場合でも、次のプログラムのようなコンパイル エラーが発生することはありません。
int main()
{
const char *str = "hello";
str[0] = 'H';
printf("%s\n", str);
}
エラーが発生します: assignment of read-only location *str。
編集
私のコードが読み取り専用の場所へのポインターを配置した場合、コンパイル エラーが発生することはありませんか?