我在维基百科上读过这个
int main(void)
{
char *s = "hello world";
*s = 'H';
}
当包含此代码的程序被编译时,字符串“hello world”被放置在程序可执行文件中标记为只读的部分中;加载时,操作系统将它与其他字符串和常量数据一起放在内存的只读段中。执行时,将变量 s 设置为指向字符串的位置,并尝试通过变量将 H 字符写入内存,从而导致分段错误**
我不知道为什么将字符串放在只读段中。请有人可以解释一下。