我有一个用 VC6 编写的 MFC 应用程序。我想为某些操作临时分配可能的最大内存。为了做到这一点,我需要找到在程序的当前状态下我可以分配多少内存。是否有任何有用的功能或代码可以做到这一点?
当然,我可以尝试按降序多次分配内存,看看是否分配。但是有没有更好的方法来做到这一点?
我有一个用 VC6 编写的 MFC 应用程序。我想为某些操作临时分配可能的最大内存。为了做到这一点,我需要找到在程序的当前状态下我可以分配多少内存。是否有任何有用的功能或代码可以做到这一点?
当然,我可以尝试按降序多次分配内存,看看是否分配。但是有没有更好的方法来做到这一点?
为了获得可以分配的最大内存量,我实际上会按升序分配内存,每次使用 realloc 将分配的内存加倍,直到它失败。但是,不能保证分配的内存实际上是在物理 RAM 中,这可能取决于您计划使用此内存的目的。请参阅这篇文章,了解何时以及为什么内存分配可能会失败。