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变量到函数结尾才释放就是好的


o_ra
6 声望4 粉丝

记录工作中碰到的问题