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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理