std::string 的构造函数 __CLR_OR_THIS_CALL basic_string(const _Elem *_Ptr)
会开辟新的内存空间,将_Ptr拷贝到新的空间里,因而下面的写法是错误
char* GetValue()
{
string s("Hello");
return s.c_str();
}
int main()
{
cout << GetValue()<<endl;
return 0;
}
s.c_str() 指向的不再是全局的内存空间,而是栈的空间,在函数返回时已经释放了