C++ 内存中栈与静态区大小的有关问题
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版,正常,估计是被优化掉了