博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt中QString::toStdString().c_str() 偶尔存在问题
阅读量:4193 次
发布时间:2019-05-26

本文共 488 字,大约阅读时间需要 1 分钟。

假设

QString str = "string";

const char* c = str.toStdString().c_str()单步调试显示的结果可能会是'\0'

而当我这样写时

std::string s = str.toStdString(); 

const char* c = s.c_str();

 c 是"string"

为啥呢???

原来有可能是这样的。

str.toStdString().c_str()中toStdString()是一个临时std::string变量,而c_str()是指向这个临时std::string变量的字符串地址,所以传给c时这个临时std::string变量已经被析构,其内容是空,c_str()自然就是'\0'。不过这种情况在未知情况下发生,有时直接写QString::toStdString().c_str() 也是好用的。

为了避免出错,最好还是

std::string s = str.toStdString(); 

const char* c = s.c_str();

这样写比较好。

多写几个字,少出点错,下次记住了!!

转载地址:http://cjloi.baihongyu.com/

你可能感兴趣的文章
小镇青年“魂断”博彩暴富梦
查看>>
小米10S继承“祖传”三重快充:50W有线+30W无线+10W反充
查看>>
华为公开“实现汽车中电子控制功能的系统”相关专利
查看>>
华为Mate40 RS保时捷设计推8+256GB版本:起售价便宜1000元
查看>>
美团股价盘中涨幅超7% 市值重回2万亿港元关口
查看>>
微信又更新了!支持上班摸鱼了
查看>>
《山河令》火爆,人人都想靠耽改剧赌一把
查看>>
让AI打工!搜狗全体员工于3月12日狗胜节放假一天
查看>>
干得漂亮!以后这些内容朋友圈都不能发了
查看>>
还在4S店买车?《Boss1+1》张朝阳对话贾鸣镝“种草”购车新方式
查看>>
蚂蚁集团CEO胡晓明宣布辞任
查看>>
怪兽充电递交IPO招股书:2020年净利润7540万元 阿里为第一大股东
查看>>
当《奇葩说》没了奇葩
查看>>
芯片短缺蔓延至手机市场:骁龙888短缺 三星中低端机型生产受阻
查看>>
用你的视频号“薅”微信流量,这个灰产太野了!
查看>>
苏宁易购回复深交所关注函:深国际和鲲鹏资本非一致行动人
查看>>
亿航智能⻓续航⻜机有望在4-8周内首⻜亮相
查看>>
微信:2021年1月至今封禁了1531个视频号帐号
查看>>
阿里系上市公司老板娘微博喊老公回家!多少创业鸟,已成纷飞燕?
查看>>
keep公众号就“借鉴”原创文章致歉:将停更一周
查看>>