C 增加堆栈保留后的堆栈溢出
我有一个任务,我需要基本上用C语言中分配的数组填充主内存。我正在使用VS2010,并不断接收堆栈溢出错误。将堆栈保留空间增加到超过其默认1 MB会有所帮助,但是现在我使用的数组大小更大,而且无论我将保留空间增加多少,它现在都会不断地给我一个堆栈溢出错误。 任何帮助都将不胜感激。C 增加堆栈保留后的堆栈溢出,c,visual-studio-2010,stack,stack-overflow,C,Visual Studio 2010,Stack,Stack Overflow,我有一个任务,我需要基本上用C语言中分配的数组填充主内存。我正在使用VS2010,并不断接收堆栈溢出错误。将堆栈保留空间增加到超过其默认1 MB会有所帮助,但是现在我使用的数组大小更大,而且无论我将保留空间增加多少,它现在都会不断地给我一个堆栈溢出错误。 任何帮助都将不胜感激。 -谢谢您可能正在堆栈上分配阵列。这就是为什么会出现堆栈溢出,因为堆栈永远不会像整个主内存那么大 您需要使用malloc()在堆上创建数组。这将允许您使用所有的主内存 换句话说,你不能这样做: int array[1000
-谢谢您可能正在堆栈上分配阵列。这就是为什么会出现堆栈溢出,因为堆栈永远不会像整个主内存那么大 您需要使用
malloc()
在堆上创建数组。这将允许您使用所有的主内存
换句话说,你不能这样做:
int array[1000000];
那肯定会让你大吃一惊。您需要这样做:
int *array = malloc(1000000 * sizeof(int));
你需要最终像这样释放它:
free(array);
否则,在阅读了这个问题的标题后,你会因为在堆栈溢出上询问堆栈溢出而得到一个。+1,因为我曾经认为这是一个递归问题!:你说的“用分配的数组填满主存”到底是什么意思?如果你需要自己进行分配,下面的malloc答案是正确的方向,但我想也许这个任务要求的是一些奇怪的东西…@Mystical别忘了提到释放内存!是的,这也很重要。补充。