実行時にエラーが発生する理由を知りたいのですが。ポインタで指された文字の値を変更する
ポインタ変数が指す文字の値を変更しようとしています。
#include <stdio.h>
int main() {
char amessage[] = "foo";
char *pmessage = "foo";
// try 1
amessage[0] = 'o'; // change the first character to '0'
printf("%s\n", amessage);
// try 2
*pmessage = 'o'; // This one does not work
printf("%s\n", pmessage);
}
最初の試行では、ooo
が表示されます。しかし、2番目の私は与えます:
[1] 9677 bus error ./a.out
アイデア?このステートメントで
配列とポインタはCで同じものではありません –
ありがとう@GovindParmar。 Downvoters:私はこの質問を改善する方法を説明してください。 –