【发布时间】:2020-03-26 03:55:51
【问题描述】:
为什么我不必从 std::string 的 c_str 函数中释放字符串? 函数如何生成 const char* 以及如何销毁?
【问题讨论】:
-
@user4581301 这些将如何帮助 OP 了解他们不需要释放
c_str返回的 原始指针 的原因? -
这能回答你的问题吗? What is std::string::c_str() lifetime?
-
RAII 链接解释了为什么他们不必释放内存背后的理念。三法则只是作为补充,因为它解释并解决了几乎所有新的 C++ 程序员在开始应用 RAII 时遇到的一个常见问题(然后通常尝试使用
new解决)。 -
@user4581301 RAII 链接解释了为什么他们不必释放内存背后的哲学 RAII 本身没有回答 OP 的问题,因为
c_str()返回一个原始指针.请参阅发布的答案以获取解决问题的答案示例。
标签: c++ string temporary-objects