<分区>
int main()
{
char *s="Hello";
*s="World";
printf("%s\n",s);
}
为什么上面的程序会导致段错误?
标签 c
<分区>
int main()
{
char *s="Hello";
*s="World";
printf("%s\n",s);
}
为什么上面的程序会导致段错误?
最佳答案
int main()
{
char *s="Hello"; // makes 's' point to a constant
*s="World"; // modifies what 's' points to
printf("%s\n",s);
}
第一行代码让s
指向一个常量。第二行尝试修改 s
指向的内容。所以你试图修改一个常量,你不能这样做,因为常量是......好吧......常量。
关于c - c中与指针相关的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18389372/