注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

慵懒的乌龟

——若有,且珍惜~

 
 
 

日志

 
 

VS调试和运行的结果不一致  

2012-05-22 16:55:02|  分类: C/C++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
     最近code了一个小项目,调试了个把星期终于调试通了,满心欢喜以为工作终于可以圆满结束了,结果点击“运行不调试”或者双击.exe文件发现程序依然出错(或者是运行结果不一致),百思不得其解,后来翻阅资料发现,下面的问题可能会引起这类问题:
    1)变量没有初始化就直接拿去用了:调试程序时,强大的VS编译器会帮你做一些初始化的工作,将为初始化的变量置“0”,结构变量置为NULL等,但是在运行时,编译器不会这么做,因此要注意一些变量记得初始化,而且尽量少用全局变量。
    2)“VS的编译器是极其牛X的,调试时候用的内存、堆栈等等和外部运行时候的结构稍有差异,并且正确率更高——事实也确实如此”,因此code代码要有个良好的习惯:变量记得一定要初始化!“变量没赋值的情况下F5,release和debug是有差别的,一个版本会清零,另一个不会这么做。”
   3)自己申请的内存,用完后记得释放,不然也可能会引起这类错误。
   4)不要忽视调试时的warning,虽然很多时候你无视他的存在不会带来什么影响,但是某一天你会被他伤到的,他们指示你程序潜在错误的“利器”,所以尽量多的将warning消除。

    明白了原因,把这些东西解决了,问题也就解决了!我的问题是有的变量没有初始化导致。
  评论这张
 
阅读(720)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018