関数内の文字列を簡単に更新しようとしていますが、次のサンプルが機能します。
void change(char* buffer) {
buffer[0] = 'b';
}
void main() {
char buffer[20] = "abc def ghi j\0";
printf("before: .%s., %p\n", buffer, buffer);
change(buffer);
printf("after: .%s.\n", buffer);
}
しかし、char[]の代わりにchar*をバッファに使用すると、関数でエラーが発生します。したがって、次の例は機能しません。
void compact(char* buffer) {
buffer[0] = 'b';
}
void main() {
char* buffer="abc def ghi\0";
printf("before: .%s., %p\n", buffer, buffer);
change(buffer);
printf("after: .%s.\n", buffer);
}
私が間違っていることについて何か提案はありますか?ありがとう。
ドン