Visual Studio C / C ++数组大小未处理的异常堆栈溢出

时间:2012-12-29 10:58:36

标签: c visual-studio-2010

  

可能重复:
  What is a stack overflow error?

当我声明大小为4096 * 1024

的大型数组时,就会发生这种情况
First-chance exception at 0x01382e97 in nsfclient.exe: 0xC00000FD: Stack overflow.
Unhandled exception at 0x01382e97 in nsfclient.exe: 0xC00000FD: Stack overflow.

如何在Visual Studio中声明大数组?

2 个答案:

答案 0 :(得分:9)

您应该明确增加堆栈大小,以便能够在堆栈上存储更大的数组。据我记得,这是使用/F选项完成的。

另一种选择是使用动态数组(使用mallocnew分配)。

编辑(感谢Jefrrey Theobald):您还必须增加链接器中的堆栈大小,这是使用/stack选项完成的。也可以通过右键单击project-> properties-> linker->系统以及setting stack commitstack reserve size来设置此选项。 enter image description here

答案 1 :(得分:4)

你没有显示任何代码,但我认为你是在堆栈上声明你的数组。尝试在堆上声明它(使用malloc)。请确保稍后free

char* bigArray = malloc(LARGE_SIZE);
/* use bigArray */
free(bigArray);