我有数千行 C++ 代码,它们在小型文本文件上运行良好,但在大型文本文件(例如 2 GB 大小)上崩溃。崩溃原因:应用程序占用内存。
是否可以从磁盘分配内存?因为在大多数情况下,硬盘空间比物理内存大得多。如果我可以从硬盘中为我的应用程序借一些空间并在使用后将它们归还,那么我的应用程序几乎没有崩溃的机会。
以下是我的设计思路:
- 为文件映射创建临时文件(CreateFileMapping, OpenFileMapping)
- 强制我的应用从临时文件中分配内存
- 做一些清理工作:关闭文件映射并删除临时文件
因为我现有的代码太多,如果我的设计思路合理,我不想重新设计我的项目。
我不确定设计思想是否可以实现。任何人都可以帮助我吗?
PS:我使用的是 Visual C++ 2010。