为什么我不必从 std::string 的 c_str 函数中释放字符串?

Why I don’t have to free string from c_str function of std::string?

为什么我不必从 std::string 的 c_str 函数中释放字符串? 函数如何生成const char*以及如何销毁?

来自 c_str()const char* return 由 std::string 本身管理,并在 std::string 过期时销毁。在这方面,必须小心他们不要在 std::string 被销毁后尝试使用从 c_str() 得到的指针 return:

const char* getName()
{
    std::string name = "Joe";
    return name.c_str();
}

上面是错误的,因为当name被析构为getName return时,指针会失效