吾往矣,居然碰到Qt的bug了
c吧
全部回复
仅看楼主
level 6
pigric☜ 楼主
今天使用Qt(版本为6.3.2)内置的markdown展示组件时,每次一打开程序就立马QList断言失败,索引越界,调试一看,断在了577行,这是哪个天才写的代码,循环条件都没判断完全,根本不考虑越界是吧,真是坑死我了
后面看Qt 6.9.1的代码是修复了的
浅浅吐槽一下。
再提一嘴,这个错误只会在Debug模式下因为断言而中断程序,在Release下不会,为什么呢?
因为断言只对Debug模式生效,而数组越界时由于QString的最后一位(即str[str.length()])一般都是'\0',所以恰好退出了循环,因此看起来一切正常,实则每次越界都是一次未定义行为,如果某台机器上的最后一位不是'\0',将会立马让程序崩溃。
2025年12月17日 13点12分 1
1