我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: VS 2005 编译器优化bug 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

落叶清风



性别: 保密 状态: 该用户目前不在线
头衔: 我真的很瓜?
等级: 人见人爱
家族: YD一族
发贴: 4344
威望: 5
浮云: 1107
在线等级:
注册时间: 2006-10-22
最后登陆: 2016-05-08

5come5帮你背单词 [ vast /va:st/ a. 巨大的,广大的,大量的,非常的 ]


VS 2005 编译器优化bug

今天写一个函数时

代码如下:
Copy code
memset(m_isEnable,sizeof(m_isEnable),1);
 
  for(int i = 0; i < t.m_num; i++)
  {
  m_isEnable[t.m_data[i] -1] = 0;
  }

发现 编译以运行后始终与预期结果不同,调试时发现
编译器根本没有编译memset;
使得m_isEnable没有正确初始化

大大的bug啊  取消编译器优化后工作正常

顶端 Posted: 2007-10-13 19:44 | [楼 主]
hhbhhb



性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
发贴: 292
威望: 0
浮云: 1105
在线等级:
注册时间: 2006-09-21
最后登陆: 2009-03-16

5come5帮你背单词 [ brass /bra:s/ n. 黄铜,(pl.)黄铜制品 ]


memset(m_isEnable,sizeof(m_isEnable),1);

你给的参数错了。第一个是首地址,第二个是值,第三个是大小。
size是1的时候直接被展开成一个赋值语句了吧。

memset(m_isEnable,1,sizeof(m_isEnable));

改成这样再试。不过结果还是可能和你的预期不符哦。看m_isEnable的类型了。
顶端 Posted: 2007-10-13 23:11 | [1 楼]
disneycheng



性别: 帅哥 状态: 该用户目前不在线
头衔: Piano Prince
等级: 荣誉会员
发贴: 1971
威望: 1
浮云: 413
在线等级:
注册时间: 2005-12-16
最后登陆: 2008-06-29

5come5帮你背单词 [ stroll /strəul/ vi. & n. 漫步,闲逛 ]


lz的代码很强大。。。。
顶端 Posted: 2007-10-15 13:38 | [2 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.010361(s) query 5, Time now is:11-23 00:10, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号