使用 toStdString().c_str() 的注意事项
QString str = "Hello, world!";
// 错误用法
const char *szCopy = str.toStdString().c_str();
qDebug() << szCopy; // 输出空
// 正确用法
QString strCopy = str.toStdString().c_str();
qDebug() << strCopy; // 输出"Hello, world!"
把 toStdString().c_str() 赋值给 const char* szCopy,结果变成空,我们来看toStdString的返回值:
std::string QString::toStdString() const;
是一个临时变量,生命周期在分号后就结束了,所以输出szCopy的时候,内容是不确定的。
浙公网安备 33010602011771号