我正在尝试对函数中的字符串进行一些简单的更新,我得到了以下示例:
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);
}
关于我做错了什么有什么建议吗?谢谢。
大学教师