2012-04-02 64 views
0

我試圖建立在C++動態數組是這樣的:如何解決「內存不足」在C++動態數組

int **matrix = 0;  
matrix = new int * [dim]; 
for (int i = 0; i < dim; i++) 
    matrix[i] = new int[dim]; 

當從90000「暗淡」超S,程序崩潰並給我內存不足(超過2 GB的內存)

任何想法如何解決它?請提供其他解決方案嗎

+4

您應該接受一些以前的問題。 – iehrlich 2012-04-02 03:09:10

+1

如果矩陣不密集,有些方法表示它不使用大量內存。你確定你需要所有的記憶嗎? – 2012-04-02 03:22:53

回答

3

要分配超過2 GB的內存,您需要編譯程序並在64位操作系統上運行。

+0

沒有任何其他選擇? – Bipario 2012-04-02 03:11:08

+0

某些32位操作系統可以擠壓少量額外的應用程序內存,可能高達3 GB。但是,這取決於操作系統,通常必須選擇爲OS引導選項。 – 2012-04-02 03:13:20

+0

@Bipario,或將它們寫入磁盤,並在需要時將它們分頁存儲在內存中,或者在裝配時播放並執行PAE。 – 2012-04-02 03:13:44

1

您可以嘗試使用/ 3GB開關,這會在32位窗口的使用者(即:非服務器)版本上額外提供1GB。

Details of /3GB switch

+0

謝謝,但它不能解決我的問題,因爲我也可能超過3 GB。我應該找到另一種方法來構建這個矩陣。但是怎麼樣?! :( – Bipario 2012-04-02 03:16:37

+0

@Bipario - Uhhh ...不在內存中 – 2012-04-02 03:17:27

+0

所以在哪裏?任何建議?我需要建立這個矩陣,然後我想用整數填充它! – Bipario 2012-04-02 03:19:02