为什么全局变量的值被改变

sparrow429 2011-01-18 10:12:23
我初始化了的全局变量, 调试后发现不是我设定的值?为什么?
全局变量里有个很大的类,是因为初始化类,才改变了别的全局变量的值吗?
怎么解决这个问题啊
...全文
933 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
每件事 2011-04-28
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 sparrow429 的回复:]
但是以前是好的,我添加了一些代码后,这个才初始化不正确的...当然是DEBUG下
[/Quote]

楼主你是不是这个意思,原本初始化了一个类和全局变量,然后你跳转到另一个类去执行了?执行完,又回到了先前的类,发现值不对了?是这个意思? 如果这样,我的笨方法,传过去,再传回来
Topin27 2011-04-18
  • 打赏
  • 举报
回复
我想说,全局变量最好还是不要声明为class型的,包括stl中的类,容易产生难以发现的bug。
试试使用不含构造函数的struct呗。
每件事 2011-01-21
  • 打赏
  • 举报
回复
就如同上面说的用WATCH或者TRACE调试。查看哪一步出问题。

我今天也遇到了这个情况。

是其它类,传过来的值a=1,遇到没在使用的 CXXDLG dlg;
值就变为0了。

后来删了CXXDLG dlg; 就好了。


我也有点纳闷到底是为什么。
wmyywz1983 2011-01-21
  • 打赏
  • 举报
回复
在debug下调试跟踪一下,看看在哪里改变过了
pjl1119 2011-01-21
  • 打赏
  • 举报
回复
全局变量里有个很大的类??? 我已经OUT了。。。
sparrow429 2011-01-20
  • 打赏
  • 举报
回复
我在app的InitInstance()里面设断点,发现值就已经不对了
sparrow429 2011-01-19
  • 打赏
  • 举报
回复
我想请问下,全局变量是在app的InitInstance()函数之前还是之后初始化的?
傻X 2011-01-19
  • 打赏
  • 举报
回复
楼主,你自己watch你那个全局变量,然后断点运行,就知道哪里做修改了.另外还有一种可能memcpy类似内存拷贝溢出也会有一定概率造成这种情况.(但是这种情况很少见)
sparrow429 2011-01-19
  • 打赏
  • 举报
回复
本来设置初始化为1,后来成了一个为初始化的值,比如3.45678E-202,这样的,我感觉也是内存泄漏了
vnking 2011-01-19
  • 打赏
  • 举报
回复
内存泄露
向立天 2011-01-19
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 sparrow429 的回复:]
我想请问下,全局变量是在app的InitInstance()函数之前还是之后初始化的?
[/Quote]之前
向立天 2011-01-18
  • 打赏
  • 举报
回复
什么叫“全局变量里有个很大的类”
变量里有类?
grf9527 2011-01-18
  • 打赏
  • 举报
回复
一步一步的确认吧,在多个地方看你的全局变量的值,可以最终确定在哪里。
手机写程序 2011-01-18
  • 打赏
  • 举报
回复
全局变量里有个很大的类,是这个类初始化越界了?那把全局变量放在全局类前面试试.
sparrow429 2011-01-18
  • 打赏
  • 举报
回复
但是以前是好的,我添加了一些代码后,这个才初始化不正确的...当然是DEBUG下
手机写程序 2011-01-18
  • 打赏
  • 举报
回复
用release版调试?
cnu_rs 2011-01-18
  • 打赏
  • 举报
回复
初始化的位置不对,应该是
sparrow429 2011-01-18
  • 打赏
  • 举报
回复
我现在把改动的全局变量放在stdafx.h中,发现就没有被改变...这是什么状况啊
sparrow429 2011-01-18
  • 打赏
  • 举报
回复
我在APP中设断点看的,就发现值已经被改变了
sparrow429 2011-01-18
  • 打赏
  • 举报
回复
我确定没有主动更改过它的值...
加载更多回复(13)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧