我有点问题:
我需要将大约260mb的数据加载到一个struct(带有fread)中。 Windows资源管理告诉我,我有:
然而,当我运行我的程序并加载数据时,程序在没有剩余“空闲”内存的位置崩溃。还剩下大约1200mb的待机内存。
我想,当free mem为空时,它会自动将备用内存交换到磁盘并释放更多内存吗?
有什么办法可以避免这个问题,还是我做错了什么?
答案 0 :(得分:5)
仅仅因为内存可用并不意味着它是连续的。当你要求这样的大块时,你不太可能得到它,因为可用内存是碎片化的。
答案 1 :(得分:1)
你耗尽了虚拟地址空间,而不是物理内存。正如您所猜测的那样,物理内存将会增加,缩小磁盘缓存,然后使用交换文件。但是,虚拟地址空间是一个硬性限制。
答案 2 :(得分:0)