请教了::递归调用时总是堆栈溢出,,,会是什么问题造成的呢??多谢,,
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
-
相关文章
从一个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
