增加堆栈预留后堆栈溢出

时间:2011-09-20 04:46:21

标签: c visual-studio-2010 stack stack-overflow

我有一个任务,我需要基本上用C中的已分配数组填充主内存。我正在使用VS2010并继续接收堆栈溢出错误。增加堆栈保留超过其默认的1 MB有助于,但是现在我使用的数组大小甚至更大,似乎无论我增加多少保留,它现在不断给我一个堆栈溢出错误。 任何帮助,将不胜感激。 -Thanks

1 个答案:

答案 0 :(得分:3)

您可能正在堆栈中分配数组。这就是为什么你的堆栈溢出,因为你的堆栈永远不会像你的整个主存储器一样大。

您需要使用malloc()在堆上创建数组。这将允许你用完所有的主存储器。

换句话说,你不能这样做:

int array[1000000];

这肯定会打击你的筹码。你需要这样做:

int *array = malloc(1000000 * sizeof(int));

你需要最终释放它:

free(array);

否则您将获得memory leak