我有一个问题:
我需要将大约 260mb 的数据加载到结构中(使用 fread)。 Windows 资源管理告诉我,我有:
- 正在使用 2346mb 内存
- 待机时 1478mb 内存
- 248mb 可用内存
但是,当我运行程序并加载数据时,程序会在没有剩余“空闲”内存的情况下崩溃。尚有大约 1200mb 的待机内存。
我想,当空闲内存为空时,它会自动将备用内存交换到磁盘并释放更多内存?
有什么办法可以避免这个问题还是我做错了什么?
最佳答案
仅仅因为内存可用并不意味着它是连续的。当您请求这样的大块时,您不太可能得到它,因为可用内存是碎片化的。
关于当 "free"内存为零但备用内存仍然可用时,C++ 程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5414239/