Qt出现堆溢出(Error Code -1073741823)
症状
在使用Debug模式时,程序可以正常启动,但是切换到Release模式,程序报错,错误码-1073741823
原因
程序中使用了过多的new。比如:
QActionGroup *mProtocolGroup; mLidarTypeSelGroup = new QActionGroup(this);
这个heap是在构造函数期间申请的,也就是说在整个程序运行期间,都会占用heap。然而,系统给程序的堆的空间是有限的。当占用堆过多就会出错。
解决方法
将new方法改成局部变量,比如上面的改成
QActionGroup mProtocolGroup;
mProtocolGroup(this)
这样内存分配到stack区,就没有这个问题了。