2011-09-20 80 views
2

我有一个分配,我需要基本上用C分配的数组填满主内存。我使用VS2010并保持接收堆栈溢出错误。增加超过默认1MB的堆栈保留时间有助于提高性能,但是现在我所使用的数组容量更大,看起来无论增加多少保留,它现在都会不断给我一个堆栈溢出错误。 任何帮助,将不胜感激。 -thanks增加栈保留后堆栈溢出

+1

一些代码如何? – ChrisWue

+2

+1请教关于堆栈溢出的堆栈溢出 –

+0

看完这个问题的标题后,曾经有人想过它的一个递归问题! :P –

回答

3

你可能在堆栈上分配你的数组。这就是为什么你得到堆栈溢出,因为你的堆栈永远不会像整个主内存一样大。您需要使用malloc()在堆上创建数组。这将允许你用完所有主存。

换句话说,你不能做到这一点:

int array[1000000]; 

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

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

,你需要最终自由这样的:

free(array); 

否则你会得到一个memory leak

+1

@Mystical不要忘记提及释放内存! – quasiverse

+0

是的,这也很重要。添加。 – Mysticial