需求
开一个很大的数组(300万)
❗ 错误示例
#include <stdio.h>
int main()
{
int size =3000000;
int a[size];
a[size-1] = 999;
printf("%d",a[size-1]);
return 0;
}
😋 解决方案
- 局部变量存储在栈空间 (较小,一般为 几兆)
- 全局变量存储在堆空间
把局部数组转换为全局数组即可
#include <stdio.h>
const int size =3000000;
int a[size];
int main()
{
a[size-1] = 999;
printf("%d",a[size-1]);
return 0;
}