stack overflow问题

本文介绍了在调试H.264解码包时遇到的栈溢出问题及其解决方法,包括调整VC6.0的栈分配大小及采用堆内存分配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         最近碰到一个问题,在调试H.264解码包的时候碰到stack overflow的问题,很奇怪,因为library以前测试基本ok的,最近要将他从DirectShow下整理出来,其间做了一下封装,出现问题表示如下:

 

调用函数pDecoder->OnPicture();出现以下对话框:

 

    第一反应就是会不会是指针指向出错,结果Debug调试,察看指针指向,发现正确,和类指针一样,这方面问题排除。后来进一步调试发现在调用OnPicture()函数的时候,系统首先检查分配临时变量空间给函数,而我的函数里面有一个临时变量的空间数组,大小1920*1088*2,这样导致stack开辟空间出错,问题到这边算是发现了,呵呵

 

解决方法:

    1:时候发现VC6.0默认情况下线程开辟大小为1M,我们可以通过修改Project/Settings/Link,选择Output,其中的Stack allocations的reserve的值来更改栈空间的大小。

    2:对于大空间申请,尽量避免在stack开辟,应使用动态申请的方法,开辟在heap上。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值