c++ - 调用临时对象的方法安全吗?

标签 c++ string stl g++

我有一个返回 char* 的函数。由于我必须连接一些字符串,所以我写了以下行:

std::string other_text;
// ...
func(("text" + other_text).c_str());

我知道我可以避免命名我想使用的字符串的问题。我只想借此机会提出一个更笼统的问题: 调用临时变量的方法安全吗?是否符合标准?

最佳答案

调用临时变量的方法是安全的,但返回临时变量的 char* 供以后使用是不安全的。

这个 char* 指向一个即将被释放的缓冲区。一旦它被释放,您将有一个指向内存中无效区域的指针。

请返回一个 std::string 对象。

关于c++ - 调用临时对象的方法安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/701313/

相关文章:

c++ - 我应该尽可能在 C++11 中用 'const int' 替换 'constexpr int' 吗?

c++ - 如何使用 C++11 unique_ptr 实例化我的代码?

Python字符串长度递归

c++ - 这段内存会被正确释放吗?

c++ - 在 VS 2012 中调试 STL

c++ - 循环终止时无法获得输入

c++ - Windows 7 异常代码 : 0xc0000409

c++ - 从 std::string vector 返回 char

c++ - 从 std::regex 中提取原始正则表达式模式

c++ - 用c++检查空格