二维阵列100x100堆栈溢出;堆上没有错误。 C ++

时间:2013-06-27 16:56:06

标签: c++ stack heap stack-overflow

我通过执行以下操作在堆栈上创建了一个2D数组:

    grid gridArray[100][100] = {{}};

然而,我得到了堆栈溢出。

auto gridArray = new grid[100][100]();

如果我把它放在堆上,我不会收到错误。

我不知道为什么会这样;堆栈无法分配与堆一样多的内存?我现在这样做有什么危险吗?

感谢。

1 个答案:

答案 0 :(得分:4)

  

我不知道为什么会这样;堆栈无法分配与堆一样多的内存吗?

就是这样。堆栈空间有限。根据经验,如果你有超过几KB的数据,你应该使用堆。

请参阅:What and where are the stack and heap?