1

当我尝试通过 512 创建 512 的二维数组时,我得到一个异常(ConsoleApplication3.exe 中 0x00A916D7 处的未处理异常:0xC00000FD:堆栈溢出(参数:0x00000000、0x00752000)。

int  main()
{

int a[512][512];
return 0;
}
4

1 回答 1

3

Window 的默认堆栈大小是 1MB,而 int (4 bytes) * 512 * 512 = 1MB 的大小。

当您声明一个内联数组时,例如 line int a[512][512],这是使用堆栈完成的。由于堆栈上已经有一些东西,这就是为什么你在“仅”508x508 之后遇到堆栈溢出(正如 Mitch 指出的那样)(不要依赖那么多!)。

不要在堆栈上分配数组数组,而是使用new/malloc在堆上分配它。根据您要执行的操作,数组甚至可能不是正确的数据结构。

于 2013-09-23T00:32:52.287 回答