<分区>
从函数 foo 返回 &string[0] 与 char* 相同
char* foo(){
string str="fsafsdf";
return &str[0];
}
如果上面是合法的,我们可以用这种方式返回一个c风格的字符串吗
char* foo(){
string str="fsafsdf";
str=str+'\0';
return &str[0];
}
标签 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/