这是关于从函数返回const char *的another question。
但我已经尝试使用以下代码,看起来一切正常。
#include <iostream>
#include <string>
using namespace std;
const char * tocstring(){
string str = "abcd";
return str.c_str();
}
int main(){
const char * p = tocstring();
cout << p << endl;
return 0;
}
它将输出abcd
作为我想要的。有什么想法吗?
答案 0 :(得分:0)
const char * tocstring(){
string str = "abcd";
return str.c_str();
}
这里str
是一个局部变量。一旦它超出范围,你就不应该再指出它了。这是一个UB。