关于栈、堆、静态存储区最大可分配大小的探讨 |
您所在的位置:网站首页 › vivoy93内存多大存 › 关于栈、堆、静态存储区最大可分配大小的探讨 |
看《编程之美》的第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 |