2013-01-04 61 views
3

如何增加C程序的內存限制。我正在使用代碼塊並嘗試下面的代碼 -代碼塊內存限制

int arr[10000000] 

它給我的運行時錯誤。我正在使用Linux(Fedora)。 任何幫助......?

+0

'ulimit -s unlimited',如果你真的是硬核。但是你也可以在堆上分配這麼大的一個。 –

+0

你能告訴我把這個'ulimit'聲明放在哪裏....? –

+0

從來沒有與Code :: Blocks工作,所以我不知道(如果你正常運行該程序將是shell)。但我不會推薦它。那句話很尷尬。 'int * arr = new int [10000000];'會更好。 –

回答

0
int arr[10000000]; 

它適用於我..我不認爲這取決於C :: B,我認爲這是來自您的計算機。

+0

任何想法如何我可以增加內存限制或糾正這個問題..? –

3

此聲明在哪裏發生?我認爲它應該適用於Linux機器的 內存,但可能不在堆棧中,除非您採取特殊的操作(例如ulimit -s),否則 。一般來說,它是 不是一個好主意,除非在特殊情況下,使用大型本地C風格陣列—實際上, ,根本不使用本地 陣列。只需把它定義爲你將任何正常的數組中 C++:

std::vector<int> arr(10000000); 

這將移動到堆,這可能是 如果這種大型數據集屬於實際數據。