→ james732:char str1[]=""; 是一個長度為1,內容只有\0的陣列 10/29 12:02
→ james732:這麼寫應該會有overflow問題 10/29 12:03
→ kingofsdtw:A2: str1被宣告成指標 其內容指向"" 10/29 12:11
推 loveme00835:1.是 array access out of bounds 吧 XD 10/29 12:21
→ loveme00835:2.這就像之前回答你的一樣...指到的那塊是唯讀的不能 10/29 12:22
推 loveflames:會出現overflow沒錯 10/29 12:23
→ loveme00835: 改值, 仔細看好fgets 他接受的引數是 const char*還 10/29 12:23
→ loveme00835: 是 char*, 雖然 char *str = "123" 這個 str 的型態 10/29 12:23
→ loveme00835:是 char*, 但是它只能當 const char* 來操作, 所以我 10/29 12:24
→ loveme00835:會要你這類的字串都用這種指標來接 10/29 12:24
推 loveme00835:其實函式的prototype就會透露了他會做的動作, 傳址表 10/29 12:28
→ loveme00835:示他會改到你的記憶體, 但是傳 pointer to const表示 10/29 12:29
→ loveme00835:它只有藉由指標去讀值而已, 你連prototype都不清楚的 10/29 12:29
→ loveme00835:話, 不能稱作「知道他大概的樣子喔」, 而且也可以算你 10/29 12:30
→ loveme00835:沒有呼叫他的權利, 因為它所要的 precondition 你都不 10/29 12:30
→ loveme00835:知道要怎麼確保 10/29 12:31
→ james732:請注意它用的是 char mystr[100]; 而非 char [] = ""; 10/29 12:35