1

嗨,伙计们。我有点坚持了一段时间。我已经在其他主题上寻找解决方案,但没有一个固定的。

这是错误消息:

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];

我基本上试图解决的是增加Stack Reserve SizeStack Commit Size,但没​​有成功。请给我一些提示。

4

1 回答 1

2

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

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

于 2013-09-25T22:40:45.303 回答