c++ - 返回一个返回类型为 `std::string` 的本地字符数组

标签 c++ string

在代码审查中,我发现了一些类似的东西:

std::string foo()
{
    char tmp[] = "abcd";

    return tmp;
}

字符缓冲区是否在超出范围之前转换为 std::string

最佳答案

Is the character buffer converted into a std::string before it gets out of scope ?

是的。返回值在函数返回之前被初始化。

关于c++ - 返回一个返回类型为 `std::string` 的本地字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53797259/

相关文章:

c++ - 线条和边缘检测器,opencv

c++ - 当编译器看不到可以完成转换的可能类型时,是否允许编译器优化 volatile 指针的 dynamic_cast?

python - 将数组转换为字符串格式 - Python

javascript regExp检查最后一个字符

c++ - Visual Studio - C++ - 以 32 位或 64 位构建和运行应用程序 - 从适当的 ProgramFiles 目录加载 DLL

c++ - 内存映射文件很慢

c++ - 使用 boost 绑定(bind)/函数创建菜单处理程序

string - 通过返回分配的字符串导致内存泄漏

C++11 字符串赋值运算符

java - 将 Android Java 格式的字符串转换为 Swift