我有一个定义如下的方法:
const std::string returnStringMethod()
{
std::string myString;
// populate myString
return myString;
}
Run Code Online (Sandbox Code Playgroud)
现在,在调用者中,我做了类似这样的事情:
const char * ptr = returnStringMethod().c_str();
Run Code Online (Sandbox Code Playgroud)
正如我所看到的,这是返回一些我没想到的截断字符串.但是,以下工作正常:
std::string str = returnStringMethod();
const char * ptr = str.c_str();
Run Code Online (Sandbox Code Playgroud)
有人可以帮我理解这里发生的事情吗?.
PS:我们每周构建一次代码.我上周提交代码时测试了这个,事情还不错.所以,我真的想知道我在这里可能缺少什么.
谢谢,帕万.