我正在研究合并排序的实现。我正在尝试使用 C++ Visual Studio 2010 (msvc)。但是当我用一个包含 300000 个整数的数组进行计时时,它显示了一个未处理的 stackoverflow 异常并将我带到一个名为“chkstk.asm”的只读文件。我将大小减小到 200000,它起作用了。同样的代码再次使用 C-free 4 编辑器 (mingw 2.95) 没有任何问题,而大小为 400000。你有什么建议让代码在 Visual Studio 中工作吗?
可能是合并排序中的递归导致了问题。
最佳答案
问题解决了。感谢 Kotti 提供代码。我在与该代码进行比较时遇到了问题。问题不在于太多的递归。实际上,我正在使用一个存储在堆栈中的普通 C++ 数组。因此问题用完了堆栈空间。我只是用 new/delete 语句将它更改为动态分配的数组,它起作用了。
关于c++ - Visual Studio 中 C++ 中 chkstk.asm stackoverflow 异常的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2836033/