首页 > 其他分享 >Stack overflow

Stack overflow

时间:2022-12-15 14:37:42浏览次数:30  
标签:strTag getDayHisData CHisDataOfOneDay dayData pPara date overflow Stack


     程序调试执行时报如下错误:

  

 

    崩溃代码:

// 结构体定义
typedef struct
{
// 数据条目个数
int iCount;

// 数据条目数组,按1s频率采样, 86400个数据
CHisDataItem data[60*60*24];
} CHisDataOfOneDay;

// 崩溃语句
if(pFuncName=="getDayHisData")
{

QString strTag=pPara[0].toString();
QDate date=pPara[1].toDate();
// 真正引起崩溃的核心代码在此,这个为容纳一天数据的结构体,导致栈区空间不足
CHisDataOfOneDay dayData;
bool status=m_pDb.getDayHisData(strTag,date,dayData);
}

 

       栈区空间比较有限,当代码中有很大变量时或者执行N次循环时,分配大量的变量, 很容易导致栈空间用尽,程序崩溃;

    解决方案:1. 直接在vs加大栈空间,此方案治标不治本,不推荐 2.直接在堆上分配变量,用完后释放

 

   解决方案2:

if(pFuncName=="getDayHisData") 
{

QString strTag=pPara[0].toString();
QDate date=pPara[1].toDate();
CHisDataOfOneDay *dayData=new CHisDataOfOneDay; //堆上分配该变量
bool status=m_pDb.getDayHisData(strTag,date,*dayData);
delete dayData; //释放内存
}

 

 

标签:strTag,getDayHisData,CHisDataOfOneDay,dayData,pPara,date,overflow,Stack
From: https://blog.51cto.com/u_1923895/5939825

相关文章

  • 栈和stack
    1.栈的实现特点:先进后出、后进先出1.1顺序栈顺序栈是依赖数组实现的。其代码实现如下:classSequenceStack{public:SequenceStack(intsize=10);~Seq......
  • 【collection】4.java容器之LinkedList,Stack,CopyOnWriteArrayList
    LinkedList节点数据结构/***泛型结构*@param<E>node*/privatestaticclassNode<E>{ Eitem; //双向链表,向前和向后 Node<E>next; Node<E>prev; N......
  • 使用 ServiceStack 构建跨平台 Web 服务
    WindowsCommunicationFoundation(WCF)是一个相当优秀的服务框架,当我们讨论跨平台的服务的时候,虽然WCF对WebService的支持还行,在面对一些高级应用的不......
  • 获取Openstack认证令牌
    在运行身份管理服务的典型OpenStack部署中,可以指定用于认证的项目名、用户名和密码凭证。下面以使用cURL命令为例进行示范。(1)首先导出环境变量OS_PROJECT_NAME(项目名)、OS_......
  • openstack ceph
    OpenStack集成ceph详细过程可以查看ceph官方文档:​​cephdocument​​OpenStackQueens版本,1台控制节点controller,1台计算节点compute;1.创建存储池Glance:Glance可以把镜像......
  • JVM 命令 jps jstat jstack
    jps显示出所有的JAVA进程以及PIDjstat查看堆内存各部分的使用量,以及加载类的数量jstack–用来查看堆栈信息jps-lvmVtop-Hppid将线程转换为16进制,因为堆......
  • ceph openstack 集成
    前言为什么要集成ceph???ceph官网:https://docs.ceph.com/en/latest/关于ceph:https://blog.csdn.net/mingongge/article/details/100788388参考连接:https://blog.csdn.net/jmil......
  • openstack ceph
    OpenStack集成ceph详细过程可以查看ceph官方文档:cephdocumentOpenStackQueens版本,1台控制节点controller,1台计算节点compute;1.创建存储池Glance:Glance可以把镜像存......
  • 【集成学习(下)】Task13 Stacking
    基于前面对Blending集成学习算法的讨论,我们知道:Blending在集成的过程中只会用到验证集的数据,对数据实际上是一个很大的浪费。为了解决这个问题,我们详细分析下Blending到底哪......
  • openstack介绍及原理
     openstack项目搭建:1、环境布署2、配置keystone服务3、配置glance服务4、配置placement服务5、配置nova服务控制节点6、配置nova服务计算节点7、配置neutron服务控制节点......