私はポインタと運動でこれを持っている:printf
sが(私はH
とo
を得る)証明としてこの逆参照文で何が問題になっていますか?
char *str = "Hello";
int count = 0;
int len = 5;
printf("%c\n", *(str + count));
printf("%c\n", *(str + len - count - 1));
*(str + count) = *(str + len - count - 1);
*(str + count)
と*(str + len - count - 1)
の両方が有効な値です。なぜ私は上記を実行するとbus error
が得られますか?
'str'はどこから来ますか? –
'char'配列のサイズは何ですか?' count'と 'len'の値は何ですか? –
'count'をインクリメントすると、一方の参照が一方向に移動し、もう一方の参照がもう一方の方向に移動します。私はあなたの配列の終わりから、おそらくフロントエンドから歩いていると思います。 –