字符*的我有這樣一段代碼結束用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)。)不要調用未定義的行爲。 –