[請益] 請教各位高手

看板Soft_Job作者時間14年前 (2010/01/07 17:06), 編輯推噓7(7016)
留言23則, 15人參與, 最新討論串1/1
面試時被問到 int fun(int *a, int *b) { int *c; *c=*a+*b; return *c; } 上述的程式哪邊有問題 一時之間整個恍掉=.= 請問各位高手這個程式哪邊有問題 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.104.8.86

01/07 17:07, , 1F
null pointer checking
01/07 17:07, 1F

01/07 17:08, , 2F
*c 可能造成crash
01/07 17:08, 2F

01/07 17:19, , 3F
拍謝 有點看不懂意思 可以白話點嗎 (感激不盡)
01/07 17:19, 3F

01/07 17:23, , 4F
該重休了
01/07 17:23, 4F

01/07 17:28, , 5F
a和b兩個指標都有可能會是null呀 老兄~
01/07 17:28, 5F

01/07 17:46, , 6F
考慮多種可能CASE 就是這樣
01/07 17:46, 6F

01/07 17:50, , 7F
改成int c; c=*a+*b; return c;
01/07 17:50, 7F

01/07 17:55, , 8F
是c 沒有address吧~..5樓你是不是搞錯了..
01/07 17:55, 8F

01/07 18:32, , 9F
...這...*c dereference的時候會死吧...XD
01/07 18:32, 9F

01/07 18:50, , 10F
題目沒有說傳入的兩個指標是啥 所以第一步當然是先檢查
01/07 18:50, 10F

01/07 19:46, , 11F
c的內容未知 ... 可能會segfault或者改到別的東西 XD
01/07 19:46, 11F

01/07 22:03, , 12F
好難喔~考倒我了
01/07 22:03, 12F

01/07 23:06, , 13F
感謝大家的回答 我剛剛突然搞懂1F的大大在說啥 謝謝大家
01/07 23:06, 13F

01/08 09:35, , 14F
c 是一個指標變數, 指向那裡 , 沒有定義,這樣會死的很難看
01/08 09:35, 14F

01/08 13:21, , 15F
remmurds 不懂裝懂喔..
01/08 13:21, 15F

01/08 13:29, , 16F
那就說我哪裡說錯吧 當然c沒有address是一定的 可是ab呢?
01/08 13:29, 16F

01/08 13:32, , 17F
檢查傳入指標合不合法是基本的, 當然也有些為效率而不做的啦
01/08 13:32, 17F

01/08 13:34, , 18F
能答出檢查 *a *b 的, 應該比只有答 *c 改成 c 的更細心
01/08 13:34, 18F

01/08 23:40, , 19F
檢查完*a *b, *c還是有可能會是illegal阿
01/08 23:40, 19F

01/12 13:13, , 20F
int *c沒指定儲存在哪,會錯誤,改成int *c = new int
01/12 13:13, 20F

01/12 13:15, , 21F
也可以,或像yulilee大的,改成int c
01/12 13:15, 21F

01/12 22:08, , 22F
並不會因為檢查完還有可能會是 illegal 就不檢查吧 ??
01/12 22:08, 22F

03/20 20:54, , 23F
發現一堆人不懂裝懂...
03/20 20:54, 23F
文章代碼(AID): #1BHQFvig (Soft_Job)