栈(stack)上申请内存大小限制问题
#include using namespace std;
long int count = 0;
void stack()
{
char msg[1024];
//加上static可以测试静态存储区的内存
cout<<"count="<
上面程序输出的值大概就是栈能申请的最大内存,单位为k。
【栈(stack)上申请内存大小限制问题】我们可以在终端用ulimit -a 察看stack内存的限制,得到结果为8192k(实际操作中不能申请到这么大的内存)
用malloc是在堆上申请内存,申请的内存可能不是连续的,所以可以申请很大内存。但stack申请的内存是连续的,所以一次不能申请太多。
int main()
{
//int stack[2097152];
//2097152*4=8192k(申请内存太大,出错)
int stack[2000000];
// 正确
stack[0]=1;
return 0;
}
推荐阅读
- Y房东的后半生14
- 陇上秋二|陇上秋二 罗敷媚
- MediaRecorder前后摄像头同时录像
- live|live to inspire 一个普通上班族的流水账0723
- 上班后阅读开始变成一件奢侈的事
- 危险也是机会
- “精神病患者”的角度问题
- 亲子日记第186篇,2018、7、26、星期四、晴
- 海院(实干是海院风景(上))
- 带有Hilt的Android上的依赖注入