我通过执行以下操作在堆栈上创建了一个2D数组:
grid gridArray[100][100] = {{}};
然而,我得到了堆栈溢出。
auto gridArray = new grid[100][100]();
如果我把它放在堆上,我不会收到错误。
我不知道为什么会这样;堆栈无法分配与堆一样多的内存?我现在这样做有什么危险吗?
感谢。
答案 0 :(得分:4)
我不知道为什么会这样;堆栈无法分配与堆一样多的内存吗?
就是这样。堆栈空间有限。根据经验,如果你有超过几KB的数据,你应该使用堆。