【发布时间】:2012-09-11 09:27:21
【问题描述】:
可能重复:
C programming, why does this large array declaration produce a segmentation fault?
我写了一个简单的程序。
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
int genotype[150000000];
}
但我得到一个奇怪的错误:
RUN FAILED(退出值1,总时间:131ms)
我怎样才能保存这么多的int?
(我有足够的内存来保存这个数量的ints,而且我的电脑是 64 位的)
【问题讨论】:
-
对于可怜的堆栈来说,这是很多数据。
-
确实,改为在堆上分配(使用
malloc或new[]) -
@KeithRandall,
std::vector<int> genotype(150000000); -
@GregHewgill 是的,看起来像......但是新用户如何找到不同标题的它
-
@RegisteredUser:通过 close-as-duplicate 机制,使用许多不同措辞的问题都可以指向回答基本问题的同一个问题。通过记录这些重复项,谷歌和网站搜索可以帮助用户使用许多不同的搜索词找到现有的好答案。关闭重复不是对提问者的警告,但它是网站发展的自然部分。