乐趣区

关于c++:c中qt字符串链式调用的问题

c++ 有一个代码看起来挺奇怪

QString qstr = "aaa";
char* cstr = qstr.toStdString().c_str();    //err

std::string std_str = qstr.toStdString();
char *cstr = std_str.c_str();                //ok

应用链式调用时候就出错了
而离开调用就是好的
问问 chatgpt 才晓得 c_str()返回的的是 std string 的底层数据,如果 std string 曾经销毁了这个字符串就是野指针了,而离开调用的时候 std_str 变量到函数结尾才开释就是好的

退出移动版