some.exe中0x008437c7的第一次机会异常:0xC00000FD:堆栈溢出

时间:2013-09-25 22:30:45

标签: c++ visual-studio-2010

嗨,伙计。我有点坚持这一段时间了。我已经在寻找其他主题的解决方案,但没有修复。

以下是错误消息:

First-chance exception at 0x008437c7 in some.exe: 0xC00000FD: Stack overflow.
Unhandled exception at 0x008437c7 in some.exe: 0xC00000FD: Stack overflow.
The program '[2452] some.exe: Native' has exited with code 0 (0x0).

好吧,我正在尝试做的是在C中使用一个程序并尝试将其放入C ++中,以便以后升级。导致问题的块是这样的(至少,它是触发异常的地方):

int i, j, u, q, count = 0;
int elp[1026][1024], d[1026], l[1026], u_lu[1026], s[1025];
int root[200], loc[200], err[1024], reg[201];

我基本上尝试修复的是增加堆栈保留大小堆栈提交大小,但没有成功。请给我一些提示。

1 个答案:

答案 0 :(得分:2)

您正在尝试在堆栈上分配大约4 MB的数据。一般来说,你不应该这样做。

此问题的最佳解决方案是更改代码,以便在堆上分配每个数组(或者,特别是elp),而不是堆栈。您可以使用new int[],也可以使用std::vector<int>。如果您不能这样做,您可以尝试将堆栈大小增加到更大的值。