曾经你不是也是这样用的:
QString str("i am boy");
const char *p = str.toLocal8Bit().data();
看起来是不是很嚣张.
可是很多时候我们发现是错的O O
原因是:str.toLocal8Bit()返回一个QByteArray值而这个值只是一个临时变量当他再调用的.data()里返回一个指向QBtyeArray数据的指针p,
当这句话运行完了这个QByteArray临时变量也就析构了,所以指针p指向的是未定义块,也许也是对的,但........你懂的
应该用:
QBtyeArray array = str.toLocal8Bit();
const char *p = array.data();
你也可以这样
写在后面,有些人直接用str.toSdtString()然后发现出来的是错的,就就是没看manul的后果 - -!