看板 Soft_Job 關於我們 聯絡資訊
面試時被問到 int fun(int *a, int *b) { int *c; *c=*a+*b; return *c; } 上述的程式哪邊有問題 一時之間整個恍掉=.= 請問各位高手這個程式哪邊有問題 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.104.8.86
rodion:null pointer checking 01/07 17:07
rodion:*c 可能造成crash 01/07 17:08
dasung:拍謝 有點看不懂意思 可以白話點嗎 (感激不盡) 01/07 17:19
final01:該重休了 01/07 17:23
remmurds:a和b兩個指標都有可能會是null呀 老兄~ 01/07 17:28
KevinGet:考慮多種可能CASE 就是這樣 01/07 17:46
yulilee:改成int c; c=*a+*b; return c; 01/07 17:50
gush0905:是c 沒有address吧~..5樓你是不是搞錯了.. 01/07 17:55
iincho:...這...*c dereference的時候會死吧...XD 01/07 18:32
remmurds:題目沒有說傳入的兩個指標是啥 所以第一步當然是先檢查 01/07 18:50
Bencrie:c的內容未知 ... 可能會segfault或者改到別的東西 XD 01/07 19:46
prag222:好難喔~考倒我了 01/07 22:03
dasung:感謝大家的回答 我剛剛突然搞懂1F的大大在說啥 謝謝大家 01/07 23:06
sjgau:c 是一個指標變數, 指向那裡 , 沒有定義,這樣會死的很難看 01/08 09:35
gush0905:remmurds 不懂裝懂喔.. 01/08 13:21
remmurds:那就說我哪裡說錯吧 當然c沒有address是一定的 可是ab呢? 01/08 13:29
ledia:檢查傳入指標合不合法是基本的, 當然也有些為效率而不做的啦 01/08 13:32
ledia:能答出檢查 *a *b 的, 應該比只有答 *c 改成 c 的更細心 01/08 13:34
blair0:檢查完*a *b, *c還是有可能會是illegal阿 01/08 23:40
flydragon198:int *c沒指定儲存在哪,會錯誤,改成int *c = new int 01/12 13:13
flydragon198:也可以,或像yulilee大的,改成int c 01/12 13:15
ledia:並不會因為檢查完還有可能會是 illegal 就不檢查吧 ?? 01/12 22:08
yourdog:發現一堆人不懂裝懂... 03/20 20:54