c++ - Visual Studio 中 C++ 中 chkstk.asm stackoverflow 异常的建议

标签 c++ visual-studio recursion visual-c++ stack-overflow

我正在研究合并排序的实现。我正在尝试使用 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/

相关文章:

C++递归地找到水平圆柱体中的最短路径。(递归问题)

java - 解压缩带(嵌入)括号的 RLE 字符串时,递归如何工作?

c++ - 使用双端队列在 C++ 中递归合并排序到迭代

visual-studio - 通过插件覆盖 Visual Studio 语法突出显示?

c++ - RAII理解——有界指针的访问方法

c++ - 基于预加载器的锁跟踪工具中的神秘内存泄漏

c++ - 使用 IOCP 时,我应该将 WSAOVERLAPPED 的 hEvent 设置为 NULL 还是 WSAEVENT 对象的有效句柄?

c++ - "compile as"设置为 'default' 时出现外部符号链接(symbolic link)错误

.net - 如何在 Powershell 二进制模块(.Net Standard 和 Nuget)中处理公共(public)和私有(private)依赖项和打包

c++ - 在 c 中使用 realloc