int main(void) {
char *temp = "ABCDE";
temp[2] = 'X';
printf("%s", temp);
return 0;
}
在gdb中我可以看到temp [2] =' X'导致崩溃。但为什么?有人可以回答吗?
答案 0 :(得分:4)
字符串文字是不可修改的。它可以存储在内存的只读部分中,任何修改它的尝试都将导致未定义的行为。
如果您想修改它,请将temp
声明为char
的数组
char temp[] = "ABCDE";