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

QString qstr = "aaa";char* cstr = qstr.toStdString().c_str();    //errstd::string std_str = qstr.toStdString();char *cstr = std_str.c_str();                //ok

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