不使用递归如何抛出堆栈溢出异常?

问题描述 投票:7回答:10

如果不使用递归,如何引发堆栈溢出异常?

exception recursion stack stack-overflow
10个回答
12
投票

如果调用足够多的方法,则随时可能发生堆栈溢出。但是,如果在不使用递归的情况下出现堆栈溢出错误,则可能需要重新考虑您的工作方式。递归是如此简单,因为在无限循环中,您调用了大量方法。


-1
投票

创建StackOverflowException的最简单方法如下:


20
投票

由于没有其他人提到它:


17
投票

将一个ENORMOUS数组声明为局部变量。


7
投票

以下内容适用于Windows,但是大多数操作系统以类似的方式实现。


2
投票

每个尚未返回的方法调用都会占用一些堆栈空间。 (具有更多局部变量的方法会占用更多空间。)非常深的调用堆栈可能导致堆栈溢出。


2
投票

简短回答:如果您有一个调用内部对象的对象,则将堆栈跟踪增加1。因此,如果您有1000个相互嵌套的对象,每个对象都调用其内部对象,最终将获得一个堆栈溢出。


1
投票

如果您使用合理的标准库谈论C ++,我想这会起作用:


0
投票

0
投票

您也可以在堆栈中分配一些字节。

© www.soinside.com 2019 - 2024. All rights reserved.