字符*的我有这样一段代码结束用C
int main()
{
char* word = "kotok";
char* word1 = word;
while (word1 != '\0'){
printf("%s ", word1);
word1++;
}
return 0;
}
但它打印 “科托克,奥托克,TOK,OK,K” 之后并没有结束。此代码继续打印一些垃圾,然后停止。如何克服它?
我试图添加word1[strlen(word1)] = '\0';
但它给出了分段错误。
当您尝试分配时,您试图修改调用'未定义行为'的字符串文字。崩溃对未定义的行为是完全可以接受的回应;如果没有任何事情发生,或者重新格式化磁盘,或者...(您可以执行Google搜索'鼻子守护进程',或查看[每个C程序员应该知道关于未定义行为的内容](http://blog.llvm。 org/2011/05/what-every-c-programmer-should-know.html)。)不要调用未定义的行为。 –