seg代码在哪里来自这个代码?

时间:2012-12-24 02:42:30

标签: c segmentation-fault

  

可能重复:
  Why does char* cause undefined behaviour while char[] doesn’t?

请查看下面的代码

int main (int argc, char* argv[])
{   
    char* s = "Hello world!";
    s[0] = 'X';
    return 0;
}

此代码中的seg错误来自何处?

更新 相反,下面的代码没有给出seg错误,为什么?

int main (int argc, char* argv[])
{   
    char s[] = "Hello world!";
    s[0] = 'X';
    return 0;
}

1 个答案:

答案 0 :(得分:3)

"Hello world!"是一个静态字符串,您无法更改它。