作者dasung ()
看板Soft_Job
标题[请益] 请教各位高手
时间Thu Jan 7 17:05:59 2010
面试时被问到
int fun(int *a, int *b)
{
int *c;
*c=*a+*b;
return *c;
}
上述的程式哪边有问题
一时之间整个恍掉=.=
请问各位高手这个程式哪边有问题
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 112.104.8.86
1F:推 rodion:null pointer checking 01/07 17:07
2F:→ rodion:*c 可能造成crash 01/07 17:08
3F:→ dasung:拍谢 有点看不懂意思 可以白话点吗 (感激不尽) 01/07 17:19
4F:→ final01:该重休了 01/07 17:23
5F:→ remmurds:a和b两个指标都有可能会是null呀 老兄~ 01/07 17:28
6F:→ KevinGet:考虑多种可能CASE 就是这样 01/07 17:46
7F:→ yulilee:改成int c; c=*a+*b; return c; 01/07 17:50
8F:推 gush0905:是c 没有address吧~..5楼你是不是搞错了.. 01/07 17:55
9F:→ iincho:...这...*c dereference的时候会死吧...XD 01/07 18:32
10F:→ remmurds:题目没有说传入的两个指标是啥 所以第一步当然是先检查 01/07 18:50
11F:推 Bencrie:c的内容未知 ... 可能会segfault或者改到别的东西 XD 01/07 19:46
12F:→ prag222:好难喔~考倒我了 01/07 22:03
13F:→ dasung:感谢大家的回答 我刚刚突然搞懂1F的大大在说啥 谢谢大家 01/07 23:06
14F:推 sjgau:c 是一个指标变数, 指向那里 , 没有定义,这样会死的很难看 01/08 09:35
15F:推 gush0905:remmurds 不懂装懂喔.. 01/08 13:21
16F:→ remmurds:那就说我哪里说错吧 当然c没有address是一定的 可是ab呢? 01/08 13:29
17F:→ ledia:检查传入指标合不合法是基本的, 当然也有些为效率而不做的啦 01/08 13:32
18F:→ ledia:能答出检查 *a *b 的, 应该比只有答 *c 改成 c 的更细心 01/08 13:34
19F:→ blair0:检查完*a *b, *c还是有可能会是illegal阿 01/08 23:40
20F:推 flydragon198:int *c没指定储存在哪,会错误,改成int *c = new int 01/12 13:13
21F:→ flydragon198:也可以,或像yulilee大的,改成int c 01/12 13:15
22F:推 ledia:并不会因为检查完还有可能会是 illegal 就不检查吧 ?? 01/12 22:08
23F:→ yourdog:发现一堆人不懂装懂... 03/20 20:54