2016-10-24 48 views
0

我要創建靜態3D陣列200x200x200,但是當我試圖編譯該代碼靜態三維陣列 - 分段故障[C++]

int main() 
{ 
    int arr[200][200][200]; 
    return 0; 
} 

程序崩潰。調試器顯示此錯誤:

Program received signal SIGSEGV, Segmentation fault. 

有沒有人有想法如何解決這個問題?

+1

尺寸太大,把這個數組到時加載它們計算少的數字,例如堆棧... –

+0

這不是靜態的,這就是它被放入堆棧的原因。 – RyanP

+1

堆棧大小是一些MB。請參閱http://stackoverflow.com/questions/27481707/maximum-stack-size-for-c-c-program –

回答

0

您的空間不足:200 * 200 * 200 * 4(32位系統int)都是〜32MB。您無法在堆棧中分配太多空間。 Answer 1Answer 2

找到另一個解決方案,包括使用時間結果中找到其他結果,或保存值到文件,並需要

+0

這不是8GB。 –

+0

編輯錯誤 – Hennio

+0

也不是8 MB。 – user4581301