1、首先使用vs2013创建一个示例C工程,如下图所示,这里以windows为例子简单介绍获取空闲内存的方式来实现
2、如下图所示,这是一个新建的空白工程,没有任何示例代码,但是它是一个完整的工程,是可以正常编译通过的
3、接下来,我们来介绍一个可以实现获取内存信息的脑栲葱蛸函数,这个函数叫作GlobalMemoryStatusEx它是一个windows的系统函数,用来获取系统的物理内存和虚拟内存的接口
4、然后,我们可以从msdn上可以看到,这个函数使用的时候需要注意些什么,系统要满足那些条件等
5、然后我们来检查,这个系统接口会返回给我们的是什么样的数据,我们继续查看这个结构体的变量代表什么意思,如下图所示,我们可以看到总内存和空闲内存两个参数,这正是我们想要的
6、然后,我们写上实现的代码,来获取系统内存的当前信息,如下图所示,我们对比任务管惯栲狠疲理器的可用内存,发现程序获取的值是一样的,所以通过这种方式可以检测程序内存不足的功能参考代码如下:MEMORYSTATUSEX Meminfo; double dSize; memset(&Meminfo, 0, sizeof(Meminfo)); Meminfo.dwLength = sizeof(Meminfo); GlobalMemoryStatusEx(&Meminfo); dSize = (double)Meminfo.ullTotalPhys - Meminfo.ullAvailPhys; dSize /= 1024.0; dSize /= 1024.0; dSize += 0.5;