共享指针正在工作而不分配

时间:2016-01-13 10:30:50

标签: c++ c++11 shared-ptr

共享指针正在运行而没有为Win class分配内存。

代码:

class Win
{
public:
    void disp()
    {
        //Do something
    }
};

int main()
{
    std::shared_ptr<Win> sharedptr;///holds null pointer
    sharedptr->disp();//// why its working
}

为什么它在没有为其分配内存的情况下调用上述函数。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

尝试这样做:

#include <memory>
#include <iostream>
class Win
{
    public:
 void disp(){std::cout << x;}
 int x=5;
};

int main()
{
    std::shared_ptr<Win> sharedptr;///holds null pointer
    sharedptr->disp();//// why its working
}

你不会得到5.你可能得到任何东西。就像评论中的人说的那样,这是不确定的行为。