可能的重复:
Linux 上 C 中字符数组和指针的分段错误
考虑以下代码
#include <stdio.h>
int main()
{
char a[] = "hello";
char *ptr = "world";
a[2] = 'y'; //Line1. No segmentation fault
ptr[2] = 'u'; //Line2. Causes Segmentation fault
printf("name = %s\n", a);
printf("name = %s\n", ptr);
return 0;
}
如果 Line2 由于试图修改字符串常量而导致分段错误,那么为什么该规则不适用于 Line1?