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
。
答案 0 :(得分:3)
您的分段错误不是因为打印,而是因为您尝试写入字符串文字的内存。如果您将副本复制到可写内存中,您的代码将起作用:
Callback