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

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

落叶清风



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

5come5帮你背单词 [ memory /'meməri/ n. 记忆,记忆力,回忆,怀念,存储(器) ]


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帮你背单词 [ summit /'sΛmit/ n. 顶点,极点,颠峰,高峰,最高级会议 ]


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 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.010699(s) query 6, Time now is:11-22 18:49, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号