→ uranusjr: 根本不對啊, 你這樣如果需要 80 個字元以上不就炸了 04/10 01:56
→ uranusjr: 在回傳值之前你應該先處理很多其他問題 04/10 01:57
→ s89227: char *dupStr[80] 這個好怪 04/10 02:06
→ s89227: 然後這種東西用動態記憶體配置會比較好 04/10 02:07
→ s89227: 不然就像樓上說的一樣,超過80就爆炸了 04/10 02:07
推 LPH66: 然後關於你的問題, 你回傳的方式不對 04/10 02:59
→ LPH66: 不過當你解決 80 個字的問題之後理論上這裡就沒問題了 04/10 02:59
→ LPH66: 另外, 函式回傳「區域變數的指標」是不對的 04/10 02:59
→ LPH66: 這部份請參照置底十三誡之五, 那裡也有些關於這問題的提示 04/10 03:00
推 weiclin: 看這個函式的宣告, 一般就兩個作法 04/10 08:27
→ weiclin: 一個是在函式內 malloc 然後複製好回傳 04/10 08:28
→ weiclin: 但要記得把回傳值 free 掉, 不然就 memory leak 了 04/10 08:29
→ weiclin: 另一個是在函式內有一個 static char buf[BUF_LEN] 04/10 08:30
→ weiclin: 直接複製到這個 buf 後回傳, 然後拿到的人就不用 free 04/10 08:30
→ weiclin: 但是就不能這樣用:f(copyStr(1,"abc"),copystr(2,"def") 04/10 08:32
→ weiclin: 題外話,寫這種互動式的要處理輸入真是苦差事.... 04/10 08:34
→ weiclin: 只改動一點你的函式,所以他還是會炸掉的 04/10 08:42