“如何修复”;“内存不足”;在c++; 我试图在C++中构建一个动态数组,比如: int **matrix = 0; matrix = new int * [dim]; for (int i = 0; i < dim; i++) matrix[i] = new int[dim]; int**matrix=0; 矩阵=新整数*[dim]; 对于(int i=0;i

“如何修复”;“内存不足”;在c++; 我试图在C++中构建一个动态数组,比如: int **matrix = 0; matrix = new int * [dim]; for (int i = 0; i < dim; i++) matrix[i] = new int[dim]; int**matrix=0; 矩阵=新整数*[dim]; 对于(int i=0;i,c++,arrays,dynamic,C++,Arrays,Dynamic,当“dim”从90000开始超过s时,程序崩溃并导致内存不足(超过2GB的RAM) 知道怎么修吗?还有别的解决办法吗 若要分配超过2GB的内存,您需要为64位操作系统编译程序并在其上运行。若要分配超过2GB的内存,您需要为64位操作系统编译程序并在其上运行。您可以尝试/3GB开关,这将为您的用户提供额外1GB的内存32位windows的(即:非服务器)版本 您可以尝试使用/3GB开关,在32位windows的消费者(即:非服务器)版本上,该开关将为您提供额外的1GB 你应该接受以前的一些问题。如

当“dim”从90000开始超过s时,程序崩溃并导致内存不足(超过2GB的RAM)


知道怎么修吗?还有别的解决办法吗

若要分配超过2GB的内存,您需要为64位操作系统编译程序并在其上运行。

若要分配超过2GB的内存,您需要为64位操作系统编译程序并在其上运行。

您可以尝试/3GB开关,这将为您的用户提供额外1GB的内存32位windows的(即:非服务器)版本


您可以尝试使用/3GB开关,在32位windows的消费者(即:非服务器)版本上,该开关将为您提供额外的1GB



你应该接受以前的一些问题。如果矩阵不密集,则有一些表示方法不占用大量内存。你确定需要所有内存吗?你应该接受以前的一些问题。如果矩阵不密集,则有一些表示方法不占用大量内存。你确定需要吗d所有的内存?没有其他选择?一些32位操作系统有办法压缩少量额外的应用程序内存,可能高达3 GB。但是,这取决于操作系统,通常必须选择作为操作系统引导选项。@bicario,或者在需要时将其写入磁盘并在内存中分页,或者播放使用assembly和do PAE。您能解释一下如何将其写入磁盘吗?32位Windows允许您分配多达16TB的存储。问题是,您必须基本上这样做,以便您重复地将该存储的部分映射和取消映射到进程的2GB或3GB窗口中。没有其他选择了吗?一些32位操作系统有一种方法可以压缩少量额外的应用程序内存,可能高达3 GB。但是,这取决于操作系统,通常必须选择作为操作系统启动选项。@biario,或者在需要时将它们写入磁盘并在内存中进行分页,或者玩汇编并进行PAE。您能解释一下如何将其写入磁盘吗?32位Windows允许您分配多达16TB的存储。问题是,您基本上必须重复映射和取消映射该存储的一部分到进程的2GB或3GB窗口。谢谢,但这并不能解决我的问题,因为我可能也超过了3GB。我应该找到另一种方法来构建此矩阵。但是如何实现(@Bipario-Uhhh…不在内存中。那么在哪里?有什么建议吗?我需要构建这个矩阵,然后我想用整数填充它!@Bipario-你实际上想解决什么问题。不是内存问题,而是实际问题。这是家庭作业吗?也接受你的一些其他答案。@Bipario-为什么?假设我拒绝你需要的假设一个大矩阵。解释问题。谢谢,但它不能解决我的问题,因为我可能也超过3 GB。我应该找到另一种方法来构建此矩阵。但是如何(@Bipario-Uhhh…不在内存中。那么在哪里?有什么建议吗?我需要构建这个矩阵,然后我想用整数填充它!@Bipario-你实际上想解决什么问题。不是内存问题,而是实际问题。这是家庭作业吗?也接受你的一些其他答案。@Bipario-为什么?假设我拒绝你需要的假设一个大矩阵。解释问题。