gpt4 book ai didi

c++ - 在函数返回中返回新分配的 shared_ptr 的引用是否合法?

转载 作者:行者123 更新时间:2023-11-27 23:36:49 26 4
gpt4 key购买 nike

这段代码可以吗?我知道函数返回后引用计数器会降为零,因此应该释放内存。但它可以工作并在函数外成功打印取消引用。

有人可以解释一下我正在尝试做的事情是否错误,为什么?谢谢

#include <iostream>
#include <memory>
#include <string>

std::string& get_string(bool en)
{
return *std::make_shared<std::string>("hello world");
}

int main () {
auto& my_str = get_string(true);
std::cout << "str=" << my_str <<std::endl;
return 0;
}

输出:

> ./main
str=hello world

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com