0终止后打印C字符串

时间:2016-01-24 03:28:02

标签: c

int main(void) {
   // your code goes here
   char* qwe = "qwe";
   qwe[2] = '\0';
   printf("%s\n", qwe);
   return 0;
}

我一直在搞乱C指针,看看我是否正确理解它们。 从代码中,qwe包含char指针 字母'q', and can reach to 'w', 'e''\0'qwe[2] = *(qwe + 2)e。我用'\0'终止了它。现在,当我尝试打印它时,它给了我一个分段错误。我期待输出qw

1 个答案:

答案 0 :(得分:3)

您的分段错误不是因为打印,而是因为您尝试写入字符串文字的内存。如果您将副本复制到可写内存中,您的代码将起作用:

Callback