【发布时间】:2014-09-02 14:26:29
【问题描述】:
我正在尝试使用指针分配一个字符,但它不这样做。
有人能解释一下为什么以下程序停止工作吗?
#include <string.h>
int main(void) {
char *s = "modifying...";
// char s2[] = {'m','o','d','i','f','y','i','n','g','.','.','.',NULL};
// s = s2;
puts(s);
*s = 'M'; // Here the program stops working
puts(s);
return 0;
}
【问题讨论】:
-
简短的回答是“修改...”将存储在只读存储器中。
-
是的,一个答案。
-
“无法更改字符串文字中的字符” - 完全正确。您不能修改字符串文字。