私はこのコード行を何度も使用しました (更新: string が関数のパラメーターだった場合!)、しかし、今それを実行しようとすると、バス エラーが発生します (gcc と clang の両方で)。可能な限り単純なコードを再現しています。
char *string = "this is a string";
char *p = string;
p++;
*p='x'; //this line will cause the Bus error
printf("string is %s\n",string);
p ポインタを使用して文字列の 2 番目の文字を変更できないのはなぜですか?