调查指针变坏的原因(C++)

Investigating why a pointer turns bad (C++)

本文关键字:C++ 指针 调查      更新时间:2023-10-16

我在VS2008中研究的一段C++代码有一个错误的指针。指针初始化正确,引用它的代码行很少。我在调试时监视了这个指针。

当调用某个方法时,指针的值突然从0x05fe0040"更改为0x00000000 Bad Ptr(在VS2008的监视窗口中)。我不明白为什么会发生这种事。在指针丢失值的代码行之间,指针没有任何操作。

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

我是C++编程的新手,也是第一次使用VS2008,所以请解释一下你认为相关的内容。

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

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

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