#include <memory>
struct Node {
std::shared_ptr<Node> next;
std::shared_ptr<Node> prev;
};
int main() {
auto a = std::make_shared<Node>();
auto b = std::make_shared<Node>();
a->next = b;
b->prev = a;
}
#include <memory>
struct Node {
std::shared_ptr<Node> next;
std::shared_ptr<Node> prev;
};
int main() {
auto a = std::make_shared<Node>();
auto b = std::make_shared<Node>();
a->next = b;
b->prev = a;
}
正常运行,a和b在main结束时被正确释放
内存泄漏,因为循环引用导致引用计数永远不为0
编译错误
运行时抛出异常

这道题你会答吗?花几分钟告诉大家答案吧!