这是整个程序:
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
const char* str_c = "\0";
const char* function() {
string str_cpp = "John Doe";
str_c = str_cpp.c_str();
cout << str_cpp.c_str() << "\n";
cout << str_c << "\n";
return str_c;
}
int main() {
cout << function() << "\n\n";
system("PAUSE");
return 0;
}
这就是它的返回内容:
我不知道为什么str_c
指向的字符串突然丢失了。是因为其内容是在function()
内创建的,因此使用寿命较短?