我正在 Visual Studio 2005 中调试一个大型项目的一部分,并逐行调试代码。
int speed = this->values.speed;
int ref = this->values.ref_speed;
经过第一行后,values.speed 的值为 61,但由于某种原因,speed 被赋予了值 58。在第二行之后,values.ref_speed 的值为 58,但 ref 被赋予了值值 30。
暂停时,您可以看到原始值实际上分别是 61 和 58,但存储的值不同。
是什么导致了这种行为?
最佳答案
如果头文件中值结构的定义发生更改,并且并非所有目标文件都重新编译,则可能会发生这种情况。那么你的代码在这个文件中使用的结构的“映射”可能与代码的其余部分不匹配。这可以解释为什么其中一个变量似乎具有另一个变量的值。
或者 Visual Studio .pdb 文件由于某种原因没有得到更新,Visual Studio 正在旧位置查找变量。
关于c++ - 分配失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/936320/