Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 增加堆栈保留后的堆栈溢出_C_Visual Studio 2010_Stack_Stack Overflow - Fatal编程技术网

C 增加堆栈保留后的堆栈溢出

C 增加堆栈保留后的堆栈溢出,c,visual-studio-2010,stack,stack-overflow,C,Visual Studio 2010,Stack,Stack Overflow,我有一个任务,我需要基本上用C语言中分配的数组填充主内存。我正在使用VS2010,并不断接收堆栈溢出错误。将堆栈保留空间增加到超过其默认1 MB会有所帮助,但是现在我使用的数组大小更大,而且无论我将保留空间增加多少,它现在都会不断地给我一个堆栈溢出错误。 任何帮助都将不胜感激。 -谢谢您可能正在堆栈上分配阵列。这就是为什么会出现堆栈溢出,因为堆栈永远不会像整个主内存那么大 您需要使用malloc()在堆上创建数组。这将允许您使用所有的主内存 换句话说,你不能这样做: int array[1000

我有一个任务,我需要基本上用C语言中分配的数组填充主内存。我正在使用VS2010,并不断接收堆栈溢出错误。将堆栈保留空间增加到超过其默认1 MB会有所帮助,但是现在我使用的数组大小更大,而且无论我将保留空间增加多少,它现在都会不断地给我一个堆栈溢出错误。 任何帮助都将不胜感激。
-谢谢

您可能正在堆栈上分配阵列。这就是为什么会出现堆栈溢出,因为堆栈永远不会像整个主内存那么大

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

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

int array[1000000];
那肯定会让你大吃一惊。您需要这样做:

int *array = malloc(1000000 * sizeof(int));
你需要最终像这样释放它:

free(array);

否则,在阅读了这个问题的标题后,你会因为在堆栈溢出上询问堆栈溢出而得到一个。

+1,因为我曾经认为这是一个递归问题!:你说的“用分配的数组填满主存”到底是什么意思?如果你需要自己进行分配,下面的malloc答案是正确的方向,但我想也许这个任务要求的是一些奇怪的东西…@Mystical别忘了提到释放内存!是的,这也很重要。补充。