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

调用空指针不死机,该如何解决

2013-09-26 
调用空指针不死机比如class A{...} 有全局指针 A *a NULL在main里{...a-fun()a new A}有一定的概

调用空指针不死机
比如
class A
{
...
};
 
有全局指针 A *a = NULL;

在main里
{
...
a->fun();
a = new A;
}

有一定的概率不死机?
用gdb调试到a->fun后发现a=0, 
然后step居然能进去, 而且进去后打印this也是0

编译优化选为-O0或 -O2都是


这个问题隐藏了好久, 今天, 可能是程序变大了, 才死机的
我想知道为什么linux下这样能过去
有什么工具可以检查这类错误?
[解决办法]
应该是A里面没有成员变量或者func没有访问成员变量吧,所以才不会死机。
检测工具:valgrind
[解决办法]

引用:
 

Quote: 引用:

应该是A里面没有成员变量或者func没有访问成员变量吧,所以才不会死机。
检测工具:valgrind


却是没有引用成员变量

因为C++成员函数本质上就是一个C函数,然后第一个参数是this. 而你没有调用成员变量的话相当于调一个C函数,第一个参数传null,所以为啥会死机呢。

热点排行