VC程序Debug版本和Release版本运行不一致问题
来源:互联网 发布:网站空间域名注册 编辑:程序博客网 时间:2024/05/24 01:47
最近写了个VC小软件,调试发现debug和release下运行结果不一致。
查了半天发现好像是new的堆内存未释放导致的问题(不确定,但是delete []buf;后不一致问题解决了)。
第一次发现这个问题,特意记录下。
网上搜索的其他可能导致不一致的情况:
1. 对变量的初始化不一致或未初始化。例如,char字符串匹配,在Debug正常,而Release不行,增加了memset(buf, '\0', sizeof(buf))后正常,切记不要写成buf[0] = '\0'就以为安全初始化了;
2. 内存分配方式不一致。例如,同一个结构体变量,在Debug版本是sizeof()返回36个字节,而Release版本是34个字节。可通过编译器设置来确定,注意几个选项Project->Settings菜单 a>General -> Microsoft Foundation Classes选项;b>C/C++ -> Category选General -> Optimizations选项;c>C/C++ -> Category选Code Generation -> Struct member alignment字节对齐选项。
主要是这两个问题导致Debug版本与Release版本程序结果不一致,在开发时,应该时常切换到Release版本测试。我现在居然还有几个同事发布Debug版本程序,理由是Debug发生了一些莫名其妙的问题解决不了。注意:Release版本肯定比Debug版本好,好的不仅仅是效率,还有安全和稳定。
- VC程序Debug版本和Release版本运行不一致问题
- VC程序Debug版本和Release版本运行不一致问题
- 关于Debug和Release程序运行不一致的问题
- ARM:Release版本和Debug版本运行不一致的一种可能原因以及解决方法
- Debug 和 Release 版本问题
- 程序的Debug 版本和Release 版本
- DEBUG版本和RELEASE版本的问题
- VC的Debug和Release版本
- VS库函数的Debug和Release版本实现不一致
- 如何使用VC++调试程序 Debug版本与Release版本
- 如何使用VC++调试程序 Debug版本与Release版本
- 为什么我的程序debug版本运行没有问题,而release版本总是报错?
- release版本和debug版本
- vc下debug 版本和release版本的区别
- vc下debug 版本和release版本的区别
- vc下debug 版本和release版本的区别
- VC debug版本和release版本的区别
- VC中debug 版本和release版本的区别
- ubuntu12.04中opencv静态编译
- Mysql5.6安装步骤(图解)
- My Birthday
- nginx rewrite中last和break的区别
- 错误——自我提高的垫脚石
- VC程序Debug版本和Release版本运行不一致问题
- MVC、MVP以及Model2[上篇]
- 利用 JSP 2 提供的 SimpleTagSupport 开发自定义标签
- 如何在安装部署时实现注册MSComm控件
- cocos2d-x Action:其他动作
- 求数组中唯一重复的元素
- 使用libvirt管理KVM虚拟机
- MVC、MVP以及Model2[下篇]
- linux 多线程同步方式