2011-09-20 118 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