首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++ 内存中栈与静态区大小的有关问题

2013-03-17 
C++ 内存中栈与静态区大小的问题#include iostream#define ARRAY_SIZE100*1024*1024ULstatic int data[A

C++ 内存中栈与静态区大小的问题

#include <iostream>

#define ARRAY_SIZE   100*1024*1024UL

static int data[ARRAY_SIZE];
static int data1[ARRAY_SIZE];

void main(){
  int a[100*1024*1024];

  printf("hello world!\n");
}


代码中局部数组以及静态数组大小都超过了预期,为什么没有错?很不解
[解决办法]
1、一个整型可以表达4G,100M如何超出?
2、int a[100*1024*1024]这样的定义要小心栈溢出。
[解决办法]
静态全局的数组没有错很好理解,地址空间4G,你放一个100MB的数组在数据区,完全没问题

至于在栈上申请100Mb大小的数组,正常情况肯定是会有问题的
我用VS2008做测试
Debug版,栈溢出
Release版,正常,估计是被优化掉了

热点排行