嗨,伙计。我有点坚持这一段时间了。我已经在寻找其他主题的解决方案,但没有修复。
以下是错误消息:
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];
我基本上尝试修复的是增加堆栈保留大小和堆栈提交大小,但没有成功。请给我一些提示。
答案 0 :(得分:2)
您正在尝试在堆栈上分配大约4 MB的数据。一般来说,你不应该这样做。
此问题的最佳解决方案是更改代码,以便在堆上分配每个数组(或者,特别是elp
),而不是堆栈。您可以使用new int[]
,也可以使用std::vector<int>
。如果您不能这样做,您可以尝试将堆栈大小增加到更大的值。