关于栈、堆、静态存储区最大可分配大小的探讨

您所在的位置:网站首页 vivoy93内存多大存 关于栈、堆、静态存储区最大可分配大小的探讨

关于栈、堆、静态存储区最大可分配大小的探讨

2024-07-10 17:23| 来源: 网络整理| 查看: 265

看《编程之美》的第2.5节中有这么一小段程序:

float array[100 000 000];

这个1亿个float变量,这样就有8亿个字节,转化为二进制单位G,就是小于等于1G。这样大小的数组量只能用堆(动态申请内存变量)或者静态存储区(全局变量)来申请。

好了,转入今天要讲的正题。到底栈、堆、静态存储区能申请的最大分配大小是多少呢?

栈(stack)

栈大小与编译器有关。

默认情况下,visual studio 2010 的栈大小为1M。但在平时应用程序中,由于函数会使用栈结果,所以只能用略小于1M大小的栈。 对于64位和32位程序,结果都是一样的,因为VS2010已经设定好了默认的栈大小了。

const int nStackSize = 249036; // 这是0.95M int b[nStackSize]; for(int i=0;i< nStackSize;++i) b[i] =0; std::cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3