QT QString 与QByteArray 转char*后,程序错乱
QString key_str="x";
//char* key=key_str.toUtf8().data();//错误做法
if(1){
QByteArray array=key_str.toUtf8();
myDebugNum(array.length());
char* key=key_str.toUtf8().data();
for(int i=0;i<array.length();i++){
myDebugNum(array.at(i));
}
// 发现长度是1 转char*后,只有1个字节,没有结尾的\0 导致程序出现意外,可以在末尾添加一个 \0
}
//正确做法
QByteArray array=key_str.toUtf8();
array.append('\0');
char* key=array.data();

浙公网安备 33010602011771号