stack-overflow相关内容

为什么在 Clojure 中 reduce 会给出 StackOverflowError?

我正在尝试连接 Seq 的 Seq. 我可以通过 apply concat 做到这一点. user=>(count (apply concat (repeat 3000 (repeat 3000 true))))9000000 然而,根据我有限的知识,我会假设 apply 的使用会强制实现惰性 Seq,这对于非常大的输入来说似乎不合适.如果可以,我宁愿懒惰地这样做. 所以我认为使用 ..
发布时间:2021-12-16 09:02:11 其他开发

由于递归导致的 java.lang.StackOverflowError

我的问题是,当我使用递归时,我通常会得到一个 java.lang.StackOverflowError.我的问题是 - 为什么递归比循环更能导致堆栈溢出,是否有任何使用递归来避免堆栈溢出的好方法? 这是解决问题107的尝试,对于他们的示例来说效果很好,但堆栈用完了问题本身的空间. //-1 16 12 21 -1 -1 -1 16 -1 -1 17 20 -1 -1 12 -1 -1 28 ..
发布时间:2021-12-16 08:52:56 Java开发

Try-finally 块可防止 StackOverflowError

看看下面两种方法: public static void foo() {尝试 {富();} 最后 {富();}}公共静态无效栏(){酒吧();} 运行 bar() 显然会导致 StackOverflowError,但运行 foo() 不会(程序似乎无限期地运行).这是为什么? 解决方案 它不会永远运行.每次堆栈溢出都会导致代码移动到 finally 块.问题是这将需要非常非常长的时间. ..
发布时间:2021-12-16 08:48:43 Java开发

ES6 尾递归优化堆栈溢出

已阅读Rauschmayer 博士对递归尾调用优化的描述在 es6 中,我一直在尝试重新创建他详细介绍的递归阶乘函数的“零堆栈"执行. 使用 Chrome 调试器在堆栈帧之间步进,我看到尾部优化没有发生,并且正在为每次递归创建一个堆栈帧. 我还尝试通过在没有调试器的情况下调用函数来测试优化,而是将 100000 传递给阶乘函数.这会引发“最大堆栈"错误,这意味着它实际上并未优化. ..

为什么导致 StackOverflowError 的递归方法的调用次数在程序运行之间会有所不同?

一个用于演示目的的简单类: public class Main {私有静态 int 计数器 = 0;公共静态无效主(字符串 [] args){尝试 {F();} catch (StackOverflowError e) {System.out.println(计数器);}}私有静态无效 f() {计数器++;F();}} 上面的程序我执行了5次,结果是: 220252211715234219 ..
发布时间:2021-12-16 08:22:31 Java开发

本地和实例对象创建时的java StackOverflowError

嗨,谁能解释一下为什么这段代码片段给了我 StackOverflowError如果您能解释在 instanceObj 初始化和调用 ObjectTest 构造函数和 java.lang.Object 构造函数时发生了什么,我真的很感激.在我看来 ObjectTest 构造函数循环一遍又一遍.但我不知道确切的原因?所以任何建议... 公共类 ObjectTest {公共对象测试(){}Object ..
发布时间:2021-12-11 19:43:00 Java开发

递归函数引起的堆栈溢出

我是 C++ 的初学者.昨天我读了递归函数,所以我决定自己写.这是我写的: int returnZero(int anyNumber) {如果(任何数字 == 0)返回0;别的 {任何数字 - ;返回 returnZero(anyNumber);}} 当我这样做时:int zero1 = returnZero(4793);,它会导致堆栈溢出.但是,如果我将值 4792 作为参数传递,则不会发 ..
发布时间:2021-12-07 23:23:50 C/C++开发

如何防止和/或处理 StackOverflowException?

我想防止或处理 StackOverflowException,这是我从 Xsl 编辑器XslCompiledTransform.Transform 方法得到的> 我在写.问题似乎在于用户可以编写一个无限递归的 Xsl 脚本,并且它只会在调用 Transform 方法时崩溃.(也就是说,问题不仅仅是典型的程序错误,这通常是导致此类异常的原因.) 有没有办法检测和/或限制允许的递归次数?或者有什 ..
发布时间:2021-12-02 13:47:13 C#/.NET

Node.js - 超出最大调用堆栈大小

当我运行我的代码时,Node.js 会抛出一个 “RangeError: Maximum call stack size exceeded" 异常,原因是递归调用过多.我试图通过 sudo node --stack-size=16000 app 增加 Node.js 堆栈大小,但 Node.js 崩溃没有任何错误消息.当我在没有 sudo 的情况下再次运行它时,Node.js 会打印 'Segme ..
发布时间:2021-12-01 22:22:28 其他开发

什么导致 java.lang.StackOverflowError

什么会导致 java.lang.StackOverflowError?我得到的stack打印出来的根本不是很深(只有5种方法). 解决方案 检查任何对方法的递归调用.主要是在递归调用某个方法时引起的.一个简单的例子是 public static void main(String... args) {Main main = new Main();main.testMethod(1);}pu ..
发布时间:2021-11-25 18:19:04 Java开发

Java 堆栈溢出错误 - 如何在 Eclipse 中增加堆栈大小?

我正在 Eclipse 中运行我用 Java 编写的程序.对于非常大的输入,该程序具有非常深的递归级别.对于较小的输入,程序运行良好,但是当给出较大的输入时,我收到以下错误: 线程“main"中的异常 java.lang.StackOverflowError 这是否可以通过增加 Java 堆栈大小来解决?如果是,我该如何在 Eclipse 中执行此操作? 更新: @Jon Skee ..
发布时间:2021-11-25 16:37:13 Java开发

如何增加Java堆栈大小?

我问这个问题是为了了解如何增加 JVM 中的运行时调用堆栈大小.我已经得到了这个答案,而且我还得到了许多与 Java 如何处理需要大型运行时堆栈的情况相关的有用答案和评论.我已经用回复摘要扩展了我的问题. 最初我想增加 JVM 堆栈大小,这样程序就可以在没有 StackOverflowError 的情况下运行. 公共类 TT {公共静态长事实(int n){返回 n 相应的配置设置是j ..
发布时间:2021-11-25 11:37:40 Java开发

什么是 StackOverflowError?

什么是StackOverflowError,是什么导致的,我应该如何处理? 解决方案 参数和局部变量分配在栈上(引用类型,对象存在于堆> 和堆栈中的变量引用堆上的该对象).堆栈通常位于地址空间的上端,当它用完时,它会朝向地址空间的底部(即朝向零). 您的流程还有一个堆,它位于流程的底部.当你分配内存时,这个堆可以向你的地址空间的上端增长.如您所见,堆有可能与堆“碰撞"(有点像构造板块 ..
发布时间:2021-11-25 10:13:27 Java开发

64 位上的堆栈常驻缓冲区溢出?

我正在研究一些与安全相关的东西,现在我正在玩我自己的堆栈.我所做的应该非常简单,我什至没有尝试执行堆栈,只是为了表明我可以控制 64 位系统上的指令指针.我已经关闭了我所知道的所有保护机制,只是为了能够使用它(NX 位、ASLR,还使用 ​​-fno-stack-protector -z execstack 进行编译).我在 64 位汇编方面没有太多经验,在自己花了一些时间进行搜索和试验之后,我想 ..
发布时间:2021-11-25 05:51:39 服务器开发