我试图建立在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的内存)
任何想法如何解决它?请提供其他解决方案吗
我试图建立在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的内存)
任何想法如何解决它?请提供其他解决方案吗
要分配超过2 GB的内存,您需要编译程序并在64位操作系统上运行。
没有任何其他选择? – Bipario 2012-04-02 03:11:08
某些32位操作系统可以挤压少量额外的应用程序内存,可能高达3 GB。但是,这取决于操作系统,通常必须选择为OS引导选项。 – 2012-04-02 03:13:20
@Bipario,或将它们写入磁盘,并在需要时将它们分页存储在内存中,或者在装配时播放并执行PAE。 – 2012-04-02 03:13:44
您可以尝试使用/ 3GB开关,这会在32位窗口的使用者(即:非服务器)版本上额外提供1GB。
您应该接受一些以前的问题。 – iehrlich 2012-04-02 03:09:10
如果矩阵不密集,有些方法表示它不使用大量内存。你确定你需要所有的记忆吗? – 2012-04-02 03:22:53