处理结束,退出代码为-1073741571

问题描述 投票:17回答:3

我有一个递归函数,它正在寻找欧拉路径。我认为该函数的定义不相关(但如果有人这样认为,我也将其粘贴)。

问题是,当我运行带有大图的函数时,收到以下众所周知的错误:RuntimeError: maximum recursion depth exceeded in cmp

即使没有上述问题,我也知道我需要使用以下命令来增加递归限制

import sys
sys.setrecursionlimit(5000)

问题是,无论我使用的是什么数量,我都会遇到最大递归错误,或者我的程序暂停但屏幕上没有输出,但是:处理结束,退出代码-1073741571。我试图用Google搜索此代码,而我唯一能找到的问题就是Ruby中的问题。知道如何解决这个问题。

如果相关,我使用的是Windows 8 64位,我有足够的RAM,并且我有64位python。

[由于某种原因,这个问题最近受到了关注,我想强调指出的是,我找不到该问题的解决方案。在无可奈何地尝试解决问题之后,我放弃了并重写了它,而没有递归。同样很烦人,但是比起研究这个问题,我花了更少的时间重写整个算法。我还想提到我没有以前的递归代码,因此我将无法复制该问题。

python recursion error-code
3个回答
8
投票

您可以使用类似:

if __name__ == '__main__':
    sys.setrecursionlimit(100000)
    threading.stack_size(200000000)
    thread = threading.Thread(target=your_code)
    thread.start()

这解决了我的递归限制和堆大小限制。


7
投票

这是Microsoft的“堆栈溢出/堆栈耗尽”错误代码0xC00000FD的带符号整数表示。

您可以按照答案How to overcome Stack Size issue with Visual Studio (running C codes with big array)中的描述,尝试增加可执行文件的堆栈大小:

任何时候您在窗口中看到奇怪的大型负退出代码,将它们转换为十六进制,然后在ntstatus错误代码http://msdn.microsoft.com/en-us/library/cc704588.aspx中查找它们>

今天在递归函数上也遇到了同样的问题。重新安装Python对我有用。


-1
投票

今天在递归函数上也遇到了同样的问题。重新安装Python对我有用。

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