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();
posted @ 2025-02-25 15:21  小城熊儿  阅读(35)  评论(0)    收藏  举报