1

我在 VS 2008 中研究的一段 C++ 代码有一个错误的指针。指针已正确初始化,并且引用它的代码行很少。我在调试时关注了这个指针。

当调用某个方法时,指针的值突然从0x05fe0040 ""变为0x00000000 Bad Ptr(在 VS2008 的 Watch 窗口中)。我无法弄清楚为什么会这样。在指针丢失值的代码行之间没有对指针进行任何操作。

我该如何进一步调查?这个指针变坏的可能原因是什么?

我是 C++ 编程的新手,并且是第一次使用 VS2008,所以请解释您认为相关的任何内容。

4

2 回答 2

5

如果操作变量的任何代码都没有更改该值,则必须通过杂散/悬空指针缓冲区/数组溢出来访问它。

在指针变量上使用内存断点,这样调试器将快速显示哪些代码正在破坏它。

于 2012-02-01T10:23:34.283 回答
2

您可能在其他地方访问了数组索引或一些无效内存(例如未初始化的指针)并覆盖了指针变量的值。

于 2012-02-01T10:18:16.450 回答