GlobalMemoryStatus()显示当前物理内存和虚拟内存信息

莫名其妙运行成功

本文适用于操作系统实验报告

// GetMemoryStatus.cpp : Defines the entry point for the console application.
//

#include <stdio.h>

#include <Windows.h>

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
void GetMemSta(void);

// The one and only application object


using namespace std;

int main(int argc, TCHAR* argv[], TCHAR* envp[])
{
	int nRetCode = 0;
	LPVOID BaseAddr;
	char *str;

	GetMemSta();
	printf("Now Allocate 32M Virtual Memory and 2M Physical Memory\n\n");
	BaseAddr=VirtualAlloc(NULL,1024*1024*32,MEM_COMMIT,PAGE_READWRITE);
	if(BaseAddr == NULL)
		printf("Virtual Allocate Fail\n");
	str=(char*)malloc(1024*1024*2);
	GetMemSta();
	printf("Now Release 32M Virtual Memory and 2M Physical Memory\n\n");
	if(VirtualFree(BaseAddr,0,MEM_RELEASE)==0)
		printf("Release Allocation Fail\n");
	free(str);
	GetMemSta();

	return nRetCode;
}

void GetMemSta(void)
{
    MEMORYSTATUS MemInfo;
	GlobalMemoryStatus(&MemInfo);
	printf("Current Memory Status is:\n");
	printf("\t Total Phycial Memory is %dMB\n",MemInfo.dwTotalPhys/(1024*1024));
	printf("\t Available Physical Memory is %dMB\n",MemInfo.dwAvailPhys/(1024*1024));
	printf("\t Total Page File is %dMB\n",MemInfo.dwTotalPageFile/(1024*1024));
	printf("\t Available Page File is %dMB\n",MemInfo.dwAvailPageFile/(1024*1024));
	printf("\t Total Virtual Memory is %dMB\n",MemInfo.dwTotalVirtual/(1024*1024));
	printf("\t Available Virtual Memory is %dMB\n",MemInfo.dwAvailVirtual/(1024*1024));
	printf("\t Memory Load is %d%%\n\n",MemInfo.dwMemoryLoad);
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

paul_chen21

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值