我的程序中有这个功能
const char* Graph::toChar() {
std::string str;
const char* toret;
str = "";
for (vector<Edge*>::iterator it = pile.begin(); it != pile.end(); it++) {
str += (*it)->toString();
}
toret = str.c_str();
return toret;
}
然后我正在调试该功能,一切正常,直到我 返回 toret;线。我按下 step over ,调试器将转到std::string str; line 和所有字符串和字符变量都变成"",所以函数的最终返回是""(什么都没有)。
我究竟做错了什么?
*(它)->toString(); 工作正常,当调试器执行 *toret = str.c_str();* toret中的值是正确的。
谢谢