C++ 断言(指针)引发分段冲突

C++ 断言(指针)引发分段冲突,c++,crash,segmentation-fault,C++,Crash,Segmentation Fault,在检查指针是否为0时,我遇到了这个恼人的分段错误。这是有问题的代码: bool egammaMVACalib::checkTree() { // Not a TChain cout << "a" << endl; assert(m_tree); // crash on line 751 (this one) cout << "B" << endl; 如果您查看第5帧,您的指针为空。也就是说问题就从那里开始。断言中

在检查指针是否为0时,我遇到了这个恼人的分段错误。这是有问题的代码:

bool egammaMVACalib::checkTree()
{
   // Not a TChain
   cout << "a" << endl;
   assert(m_tree);      // crash on line 751 (this one)
   cout << "B" << endl;
如果您查看第5帧,您的
指针为空。也就是说问题就从那里开始。断言中的Seg错误仅仅是它的重新循环

如果您查看第5帧,您的
指针为空。也就是说问题就从那里开始。断言中的Seg错误仅仅是它的重新循环

线索如下:

#5  egammaMVACalib::checkTree (this=0x0) at ../Root/egammaMVACalib.cxx:751 
this=0表示对象为空

提示如下:

#5  egammaMVACalib::checkTree (this=0x0) at ../Root/egammaMVACalib.cxx:751 

这=0意味着你的对象是空的

我一直盯着mem转储,不知道它是什么意思,然后你走过来,在之前没有的地方亮起了线。谢谢。好的,但是现在,这怎么可能呢?程序如何调用this==0的对象的方法?(这不是一个静态方法)我知道这看起来很奇怪,但是方法调用与数据在不同的空间中,可以链接进来,这样你就可以得到一段知道如何调用方法的代码-我知道这看起来很奇怪,但我经历了很多。我盯着mem dump看,不知道这意味着什么,然后你们来到这条线前并没有的地方。谢谢。好的,但是现在,这怎么可能呢?程序如何调用this==0的对象的方法?(这不是一个静态方法)我知道这看起来很奇怪,但是方法调用与数据在不同的空间中,可以链接进来,这样你就可以得到一段知道如何调用方法的代码——我知道这看起来很奇怪,但我已经经历了很多。