可能重复:
无法修改 char* - 内存访问冲突
一直在寻找我用 MingW 编译的 c 程序中的一个问题,最终归结为下面非常简单的测试用例。
当然,目的是更改字符串中的字符。但是这段代码给了我一个分段错误。有人可以解释为什么吗?我不明白...
测试.c:
#include <stdio.h>
main(){
char *s = "xx";
printf("(%s)\n", s);
s[0] = 'z'; // ** Segmentation fault here **
printf("(%s)\n", s);
}
--
$ gcc -c test.c
$ gcc -o test.exe test.o
$ ./test.exe
(xx)
Segmentation fault