0
爲什麼會得到分割失敗?字符數組分割錯誤
char *c = "dog";
printf ("char is %c\n", s[0]);
s[0]='i';
printf ("s = %s\n", s);
輸出: char是d 分段故障
爲什麼它的錯誤在第二個字符串?我只是試圖瞭解它...
爲什麼會得到分割失敗?字符數組分割錯誤
char *c = "dog";
printf ("char is %c\n", s[0]);
s[0]='i';
printf ("s = %s\n", s);
輸出: char是d 分段故障
爲什麼它的錯誤在第二個字符串?我只是試圖瞭解它...
char *是一個常量字符串,其中的字符應該改變喜歡「s [0] ='我';」 將字符串改爲char數組。
char s[] = "dog";
printf ("char is %c\n", s[0]);
s[0]='i';
printf ("s = %s\n", s);
我知道,如果我這樣做了,但它爲什麼會出現內部錯誤? – DDukesterman
我發現這個來自Wiki,不太熟悉彙編的東西:)「當包含此代碼的程序被編譯時,字符串」hello world「被放置在程序可執行文件的標記爲只讀的部分;當加載,操作系統將其他字符串和常量數據放在只讀內存段中。「 – Diracnote