最近,当我编写C或C ++时,我会在堆栈上声明所有变量,只是因为它是一个选项,与Java不同。
但是,我听说在栈上声明大的东西是个坏主意。
- 为什么会这样呢?我认为涉及到堆栈溢出,但是我不清楚原因为何。
- 堆栈上有多少东西太多了?
我不是想将100MB的文件放在堆栈上,而只是将十几个千字节数组用作字符串缓冲区或其他任何东西。这是堆栈使用过多吗?
(对不起,如果有重复,搜索堆栈时会不断引用堆栈溢出。甚至没有调用堆栈标记,我只是使用了抽象标记。)
std::vector<int>
变量不会占用很多堆栈空间,大多数数据在堆中。