欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Qt出现堆溢出(Error Code -1073741823)

程序员文章站 2022-04-19 16:36:42
...

症状

在使用Debug模式时,程序可以正常启动,但是切换到Release模式,程序报错,错误码-1073741823

原因

程序中使用了过多的new。比如:

QActionGroup *mProtocolGroup;
mLidarTypeSelGroup = new QActionGroup(this);

这个heap是在构造函数期间申请的,也就是说在整个程序运行期间,都会占用heap。然而,系统给程序的堆的空间是有限的。当占用堆过多就会出错。

解决方法

将new方法改成局部变量,比如上面的改成

QActionGroup mProtocolGroup;
mProtocolGroup(this)

这样内存分配到stack区,就没有这个问题了。