首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

程序运作一段时间后,this指针自动变为NULL的可能原因

2012-09-28 
程序运行一段时间后,this指针自动变为NULL的可能原因有一个类, 并在全局范围内 创建一个对象(注:不是new出

程序运行一段时间后,this指针自动变为NULL的可能原因
有一个类, 并在全局范围内 创建一个对象(注:不是new出来的);
类似 MyClass my; 这样.

然后在其它地方使用这个类的成员函数做一些事.

然后在运行一段时间后(时间随机的), VC6.0就断在这个类的 "成员函数中" 访问成员变量的地方, 并且在"自动变量"窗口中显示this指针为0x00000了,也就是this指针自动变成NULL了.

所以想请大家, 都帮我想想, 可能会有哪些原因会导致this指针变为NULL;

(注: 因为不是new出来的, 就不存在被我主动释放的问题)

[解决办法]
最有可能的原因是,你其它地方的代码在分配内存的时候,产生越界而导致把MyClass实例的指针覆盖了,而恰好覆盖的数据是0,所以当成NULL指针了。
[解决办法]
在main处设置&my地址处的内存断点,每次内存有改动就会断下来,这样就查看出来了
[解决办法]
To set a breakpoint when a variable changes value 

From the Edit menu, click Breakpoints.
Click the Data tab of the Breakpoints dialog box.
In the Expression text box, type the name of the variable.
Click OK to set the breakpoint. 

[解决办法]
基本上是内存越界使用了
[解决办法]
内存越界覆盖
[解决办法]
有没有内存范围异常?

热点排行