c++ - 从 cpp 中的函数返回的 char*

标签 c++

<分区>

从函数 foo 返回 &string[0] 与 char* 相同

char* foo(){
    string str="fsafsdf";
    return &str[0];
}

如果上面是合法的,我们可以用这种方式返回一个c风格的字符串吗

char* foo(){
    string str="fsafsdf";
    str=str+'\0';
    return &str[0];
}

最佳答案

这是不合法的。

您将 char* 返回给刚刚死亡的对象。 str 一旦遇到函数的结束花括号 } 就不再存在。您正在返回一个悬空指针,它没有指向任何有用的东西。

关于c++ - 从 cpp 中的函数返回的 char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57665503/

相关文章:

函数参数中的c++函数定义

c++ - 创建可以包含不同类的变量

c++ - 使用来自 CreateFile 的有效句柄来自 ReadFileEx 的无效句柄错误

c++ - 尝试将文本文件加载到动态分配的二维数组时出现 'Segmentation fault' 错误

c# - 如何使用 C# 在单独运行的 native 进程中调用函数?

c++ - 查找数组中缺失的数字

c++ - 如何同时使用两个CameraCaptureUI(UWP/C++)

c++ - 将字符串存储到整数数组

c++ - 有没有办法取消 GLFW 中的 60 fps 上限?

c++ - 如何从同一进程 Hook 函数并获取调用函数的地址?