繁体   English   中英

通过递归导致堆栈溢出

[英]Cause stack overflow through recursion

我一直在使用二叉树在c ++中实现字符串的优先级队列。

我认为递归的简单性很好。 我不会发布代码,因为我已经在调试器上使用了很长时间,并且我不要求有人为我调试,但是基本上是在实现递归方法以出队和插入元素并测试多达1000个正确行为之后随机字符串我曾经使用过一个测试中心,尝试加入10000个随机字符串,但是我有一个堆栈溢出错误。 此后,我为其他人更改了递归方法,这些人使用指针光标扫描我的树以使用相同的逻辑进行插入和出队,并且没有像我期望的那样崩溃(我已将其编码为链接列表)。

然后的问题是 ,即使使用引用传递,也可以通过递归导致堆栈溢出吗?

这些递归方法是类的一部分,并定义为私有。

我希望这个问题不是很模糊,但是我对C ++的经验还不够。 非常感谢你的帮助!

在递归中,您一次又一次地调用函数。 在每次调用时,都使用堆栈存储器存储参数,堆栈变量等 因此,基本上答案是肯定的 ,深度递归会导致堆栈溢出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM