小编Vir*_*ser的帖子

在一种情况下,shared_ptr会导致运行时错误,而在另一种情况下,则不会

为什么

struct X{};

X x;
X *q = &x;
std::shared_ptr<X> p(&x);
Run Code Online (Sandbox Code Playgroud)

导致错误和

X x;
X *q = &x;
std::shared_ptr<X> p0 = std::make_shared<X>(x);
Run Code Online (Sandbox Code Playgroud)

不会导致运行时错误?

我读到在第一种情况下,我有“两个不同的指针,指向相同的数据,并且其中一个被共享”,

但是我认为在第二种情况下存在相同的情况?

运行时错误

free(): invalid pointer
Run Code Online (Sandbox Code Playgroud)

c++ pointers c++11

3
推荐指数
2
解决办法
164
查看次数

标签 统计

c++ ×1

c++11 ×1

pointers ×1