作者sevenjay (coder)
看板Soft_Job
标题Re: [闲聊] 大家工作上看过哪些夸张的 CODE ?
时间Sat May 15 18:04:17 2010
※ 引述《bobhsiao (㊣小臃肿㊣)》之铭言:
: 最近看到同事写一个
: char* GetXXXName(...)
: {
: char str[256] = {'\0'};
: .....
: return str;
: }
: 回传区域变数指标...囧rz
: 神奇的是跑起来都没错, 大概也不会改了吧
没出错有可能那个值不重要且丢出去没马上被写到。
下面这个是更危险的
char* fun(char* c)
{
...
return c;
...
return "ERROR";
}
要这样用也可以啦,只是....丢出去有写到就爆了。
例2
char *psr = new char(SENDERLEN*4);
psr="\0";
嗯後面一定会leak跟用到未分配的memory,一次爆两种。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.204.252.169
1F:推 ggg12345:如果fun对输入data与size做了range check这会有问题吗? 05/15 18:25
2F:→ sevenjay:有仔细做check也蛮累的,但我指的是return "ERROR"部份 05/15 18:36
3F:→ bobhsiao:我开始不相信年资了..写越久不一定越厉害 05/15 20:07
4F:→ ggg12345:传回pointer,却对这个位址做超范围的利用,是用的人的问题 05/16 08:01
5F:→ ggg12345:所以是说该禁用pointer吗?像使用array index也免不了啊?! 05/16 08:04
6F:→ yauhh:反正传回null也是要检查null,传回"error"难道不能检查"error 05/16 08:58
7F:推 ilovebbs:C++ 0x好像有改善第一个的问题 05/16 09:38
8F:推 ggg12345:这应是OO带来的问题,老语言静态配置,对pointer使用甚多! 05/16 16:05
9F:→ ggg12345:所以资深的反而会溺於老环境老习惯,不适应动态Object考量 05/16 16:08
10F:→ visor:恩 我也不相信年资 推文一堆错误观念 XD 05/17 09:14
11F:推 xxxxxxxxxx:- - 05/23 12:30