我不知道为什么这段代码会造成分段错误

时间:2019-05-29 02:43:07

标签: c++ shared-ptr

我正在用C ++练习shared_ptr
造成细分错误,但我不知道为什么

如果我在goo()函数中删除了cout行,效果很好

#include <iostream>
#include <memory>

using namespace std;

shared_ptr<int> foo(shared_ptr<int>* param)
{
    int* pVar = (*param).get();
    cout << "foo: " << (*pVar) << endl;
}

shared_ptr<int> goo(shared_ptr<int> param)
{
    cout << "goo: " << endl;
}

int main(int argc, char **argv)
{
    shared_ptr<int> ddd1;
    int* ddd3 = 0;

    {
        shared_ptr<int> pVar;;
        pVar = make_shared<int>(3);
        foo(&pVar);
        goo(pVar);
    }
}

0 个答案:

没有答案