tempad
Readygo技术搜索引擎 >>游戏开发 >> 请教了::递归调用时总是堆栈溢出,,,会是什么问题造成的呢??多谢,,

请教了::递归调用时总是堆栈溢出,,,会是什么问题造成的呢??多谢,,

Readygo技术搜索引擎 网络搜索 efish 2008-1-17 2:00:28

请教了::递归调用时总是堆栈溢出,,,会是什么问题造成的呢??多谢,,

楼主gemdragon(虫子)2002-11-22 17:56:12 在 VC/MFC / 基础类 提问

多谢,,,^_^ 问题点数:30、回复次数:10Top

1 楼spanzhang(红尘斩丝客)回复于 2002-11-22 17:57:43 得分 4

注意递归出口条件Top

2 楼cwanter(亚玛逊河上的渔夫)回复于 2002-11-22 17:59:33 得分 4

线程堆栈的默认大小只有1M。如果你的递归过深的话...Top

3 楼termite(★★★★★)回复于 2002-11-22 18:09:04 得分 0

调试底层时常会出现的,呵呵。Top

4 楼GZCompiler(编译器)回复于 2002-11-22 18:12:16 得分 4

需要注意:  
  因为函数的参数和里面声明的局部变量,都是在栈内分配空间。所以如果递归调用层次过深的话,就有可能栈溢出。  
  不要在递归函数内申请大的空间。Top

5 楼liuxiangren(赐予我力量吧~~我是~~唐僧)回复于 2002-11-22 18:21:47 得分 4

统一楼上,如果声明的局部变量过多,而且递归调用层次过深,在不停的压栈过程中很容易栈溢出的Top

6 楼gemdragon(虫子)回复于 2002-11-22 19:40:56 得分 0

多谢大家了,,  
   
  我的程序递归的时候确实申请了很多局部变量,如果不减少变量,有没有什么好方法啊??Top

7 楼cwanter(亚玛逊河上的渔夫)回复于 2002-11-22 19:42:07 得分 4

你可以用/stack增加堆栈大小,也可以在堆上分配内存。Top

8 楼verybigbug(等待中)回复于 2002-11-22 19:56:38 得分 3

用malloc或new进行分配局部变量。Top

9 楼gboy(★)(★)回复于 2002-11-22 20:11:21 得分 4

cwanter(小菜)   is   right  
   
  参数   /STACK:reserve   指定栈的大小,这个大小会被自动改变为   4   bytes   的整数倍。  
   
  默认栈的大小为   1M   。Top

10 楼xzhuang(胖头鱼)回复于 2002-11-22 20:17:01 得分 3

递归的出口是否正确考虑了?Top

责任编辑: efish 参与评论 查找更多:
相关文章
从一个query里执行select语句后,选出多条记录,怎样… 从一个query里执行select语句后,选出多条记录,怎样将这多条记录的某个字段全加入到一个combox里去?
asp程序与读卡器相联 asp程序与读卡器相联
急救!怎样用vc6.0编写asp的活动服务器组件 急救!怎样用vc6.0编写asp的活动服务器组件
如何把当前页面的所有内容生成静态html文件,储存在… 如何把当前页面的所有内容生成静态html文件,储存在server上?
关于CB线程的问题! 关于CB线程的问题!
怎么在FormView中画线? 怎么在FormView中画线?
为何我的ActiveX控件不能在网页中正确生成<param… 为何我的ActiveX控件不能在网页中正确生成<param name>属性
为什么VFP加到Visual SourceSafe 中后,打开项目的速… 为什么VFP加到Visual SourceSafe 中后,打开项目的速度特别的慢.
我在外国的网站找过很多资料,说不能实JAVASCRIPT不… 我在外国的网站找过很多资料,说不能实JAVASCRIPT不能实现这个功能
客户机不能进入域?救命呀? 客户机不能进入域?救命呀?
2秒记住本站域名

玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn

分类导航
Readygo技术搜索引擎