首页 > 试题广场 >

以下代码会发生什么? #include st...

[单选题]
以下代码会发生什么?
#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
  • 编译错误
  • 运行时抛出异常

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