我有一个任务,我需要基本上用C中的已分配数组填充主内存。我正在使用VS2010并继续接收堆栈溢出错误。增加堆栈保留超过其默认的1 MB有助于,但是现在我使用的数组大小甚至更大,似乎无论我增加多少保留,它现在不断给我一个堆栈溢出错误。 任何帮助,将不胜感激。 -Thanks
答案 0 :(得分:3)
您可能正在堆栈中分配数组。这就是为什么你的堆栈溢出,因为你的堆栈永远不会像你的整个主存储器一样大。
您需要使用malloc()
在堆上创建数组。这将允许你用完所有的主存储器。
换句话说,你不能这样做:
int array[1000000];
这肯定会打击你的筹码。你需要这样做:
int *array = malloc(1000000 * sizeof(int));
你需要最终释放它:
free(array);
否则您将获得memory leak。