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 @   小城熊儿  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2021-02-25 qt mingw打包 msvc2017打包 中文乱码的几个解决方案(msvc不乱码,mingw乱码)
点击右上角即可分享
微信分享提示