这样的事情会引发错误:
using namespace std;
int main()
{
int test[1000000] = {};
}
这样的事情不会:
using namespace std;
int test[1000000] = {};
int main()
{
}
为什么?一百万美元甚至对内存要求不高。
答案 0 :(得分:5)
第一个在堆栈上分配空间。第二个在编译/链接时分配数据段中的空间。堆栈的大小有限。
答案 1 :(得分:0)
Stack不是动态的,但你也可以这样做
int* arr = new int[1000000];
但是不要忘记删除它,因为这会在堆中声明数组,这是动态内存,并通过从堆中删除它来防止内存泄漏。
示例:
delete arr;
这只是如何使用内存的替代方法