qstring sprintf

场景:QString:sprintf一个很奇怪的有关问题

QString::sprintf一个很奇怪的问题
C/C++ code

std::wstring ws = L"一二三abc四五六";
QString qs = QString::fromStdWString(ws);
char* p = qs.toUtf8().data();

QString qs2;
qs2.sprintf("%s", p);    // a
qs2.sprintf("%s", qs.toUtf8().data())    // b



以上代码,a处qs2得到的是乱码,b处才是正常的字符串,这是什么原因呢?

------解决方案--------------------
提示:

临时变量 的生命周期
野指针
------解决方案--------------------
提示
char* p = qs.toUtf8().data();
用错了