C++ 侵入式\u ptr=>\u块\u类型\u有效(pHead->nBlockUse)

C++ 侵入式\u ptr=>\u块\u类型\u有效(pHead->nBlockUse),c++,pointers,C++,Pointers,我在我的代码中使用了boost'intrusive_ptr',但当我删除一些对象时,我崩溃了 事实上,我在类中使用了相同的“侵入式”并返回它,如下所示: typedef intrusive_ptr<Node> ref; class MyContainer { ref SmartPointer; }; class Compiler { private: ref MyNode; public: ref getMyNode() { return MyNode; } ref p

我在我的代码中使用了boost'intrusive_ptr',但当我删除一些对象时,我崩溃了

事实上,我在类中使用了相同的“侵入式”并返回它,如下所示:

typedef intrusive_ptr<Node> ref;

class MyContainer
{
ref SmartPointer;
};

class Compiler
{
private:
ref MyNode;

public:
ref getMyNode() { return MyNode; }
    ref process() {MyNode.Reset(); ... return MyNode; }
};

MyContainer * c1 = new MyContainer();
c1->SmartPointer = compiler.process();

delete c1; <= CRASH

这取决于很多代码,这里没有显示。你确定这是真正的代码吗?您无法分配给c1->MyNode,因为MyContainer没有MyNode成员。并且编译器未声明。而且没有过程函数。当然,这不是正确的代码!因为我有超过200Kb的代码在玩这个!因此,很难显示现实中的错误在哪里!我只是想说明我认为问题出在哪里!注意,我已经更新了示例@user346113如果没有正确的编译代码,我们就无能为力。我明白了!但是谢谢你的帮助!!!