gpt4 book ai didi

c++ - Visual Studio 调试器将 "true"显示为 "0"

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:04:07 25 4
gpt4 key购买 nike

<分区>

一个非常奇怪的案例刚刚发生在我身上——在使用调试器时,它告诉我一些 bool 变量的值为 true,但是当我打印它(或用它做任何其他操作),它表现为 0(即 false)。

我该怎么做才能修复这个错误?恐怕这是环境错误,因此发布代码示例将毫无意义。 (一个隐藏的、烦人的内存管理错误不可能是原因,对吧?),在这种情况下,我想指出,发现我的环境配置不当会让我感到惊讶(我在这个项目中工作环境超过一年)。

到目前为止我:

  • 在我的项目属性中仔细检查编译器没有对代码进行任何优化。
  • 尝试重新打开 visual studio 并清理并重新构建项目
  • 在网上搜索解决方案(未找到任何解决方案)。我使用visual studio 2010,我的编程语言是C++

关于代码共享请求:

很抱歉,我不能发布代码(我的老板不会乐意看到它在网络上运行)....如果你能给出一些关于问题可能原因的想法,它会太棒了,我会自己在代码中寻找线索,检查这些原因是否真的导致了问题。然而,需要明确的是,这里有一些让我感到困惑的代码行:

    bool dir = getNode(location)->getNext()->getDirection(); //dir is displayed as "true" in the debbuger
int toPush = (dir == 1) ? 1 : 0; //"toPush" is displayed as "0" in the debbugger
cout<<dir<<endl; //both output 0.
cout<<(dir == true)<<endl;

根据您的要求,我附上了一张屏幕截图。请注意屏幕右下角 deqplayed 的“dir”值为“true”,右侧的程序输出以 0 结尾(对应于“cout<< dir”命令)。

screen shot

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com