• 4987阅读
  • 1回复

大家来找茬 ^o^ [复制链接]

上一主题 下一主题
离线zhawk
 

只看楼主 倒序阅读 楼主  发表于: 2007-01-26
QString s = "Hello";
QByteArray o = s.toAscii();
const char* p1 = o.constData();
const char* p2 = s.toAscii().constData();

上述代码把QString对象转换成字符指针,看上去p1、p2指向的字符串内容应该相同(地址显然是不一样的)。但实际执行结果却是:p1指向字符串 hello ,p2指向无效地址。

这个错误相当隐蔽,我花了半个多小时才想明白,看看你用多长时间 ^o^
离线drifthat

只看该作者 1楼 发表于: 2007-01-27
哎,s.toAscii().constData()这句话之后那个匿名对象就没了,指针就变成野指针了
快速回复
限100 字节
 
上一个 下一个