免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: pmerofc
打印 上一主题 下一主题

垃圾代码分析——C语言二维数组范例 [复制链接]

论坛徽章:
0
51 [报告]
发表于 2012-04-09 13:28 |只看该作者
回复 32# 三月廿七


    一直不明白{0}里那个0有毛用

论坛徽章:
0
52 [报告]
发表于 2012-04-09 13:29 |只看该作者
AD8018 发表于 2012-04-09 13:25
可这是在qsort里啊,本来就是比大小,不是要得到近似于0这一结果。
你对浮点结果做的修饰,只会扩大误 ...


我明白你的意思

论坛徽章:
0
53 [报告]
发表于 2012-04-09 13:32 |只看该作者

江湖又是风起云涌。

论坛徽章:
0
54 [报告]
发表于 2012-04-09 13:32 |只看该作者
本帖最后由 AD8018 于 2012-04-09 13:33 编辑

当然,还有一个整数溢出的bug,原有代码很多情况下得不出平均值,
我开始以为专家讲的是这个
作者最后才 (float)total,只满足小数要求,看着实在憋屈。

  1. float getaver(int* st)
  2. {
  3.     int count = 0;
  4.     int total = 0;  //////////////////////////// float total = 0;
  5.     while(0!=*st)
  6.     {
  7.         ++count;
  8.         total += *st;
  9.         ++st;
  10.     }
  11.     if(0 == count)
  12.         return 0.0f;
  13.    
  14.     return (float)total/count;
  15.      
  16. }
复制代码

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
55 [报告]
发表于 2012-04-09 13:33 |只看该作者
pmerofc 发表于 2012-04-09 13:23
外部变量和static 的局部变量是自动初始化的为0值的


没错,确实是初始化为0
何时初始化为0的呢?

考虑下下面的数组的使用:

static char s_temp[1024 * 1048576];

编译后在512M内存和8G内存的机器上分别运行

于是我养成了统一在main()里面运行bzero()的习惯

有bzero()的程序,刚一运行就段错误,没有的话,没准半年后才down掉

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
56 [报告]
发表于 2012-04-09 13:36 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
57 [报告]
发表于 2012-04-09 13:38 |只看该作者
回复 46# safedead

>> static char s_thread_buff[4096][65536];
>> 我习惯上会在main()的第一行写下这个:
>> bzero(s_thread_buff, sizeof(s_thread_buff));
>> 而且我会给这个bzero()加个注释
>> //申请静态内存

这是在卖萌么?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
58 [报告]
发表于 2012-04-09 13:43 |只看该作者
OwnWaterloo 发表于 2012-04-09 13:38
回复 46# safedead

>> static char s_thread_buff[4096][65536];


不得不这么做,被坑过,虽然跟脱裤子放屁差不多

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
59 [报告]
发表于 2012-04-09 13:48 |只看该作者
回复 55# safedead

>> static char s_temp[1024 * 1048576];
>> 编译后在512M内存和8G内存的机器上分别运行

原来所谓的防御性编程还有这个作用啊

论坛徽章:
0
60 [报告]
发表于 2012-04-09 13:56 |只看该作者
回复 51# hbmhalley


    就是有个毛用啊,
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP