关于QString.toXXX错误用法

曾经你不是也是这样用的:


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的后果   - -!

阅读更多
个人分类: 杂项
想对作者说点什么? 我来说一句

C语言之typedef的问题.doc

2010年08月04日 45KB 下载

session使用方法

2008年10月31日 103KB 下载

dozer(PDF)

2007年12月20日 722KB 下载

CPLD的用法关于长cpld的用法

2010年04月23日 891KB 下载

ListView(一)用法

2011年09月11日 126KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭