2

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

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

但是,我得到一个堆栈溢出。

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

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

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

谢谢。

4

1 回答 1

4

我不完全知道这是为什么;堆栈是否无法分配与堆一样多的内存?

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

请参阅:堆栈和堆是什么以及在哪里?

于 2013-06-27T16:58:21.383 回答