读书人

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

发布时间: 2013-03-17 13:48:31 作者: rapoo

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版,正常,估计是被优化掉了

读书人网 >C++

热点推荐