私有内存申请和释放

私有内存:独占物理页
共享内存:和别人共享物理页
在这里插入图片描述

#include "stdafx.h"

int main(int argc , char* arvc[])
{
	return ;

}

被占用地址:
在这里插入图片描述

LPVOID VirtualAlloc{
	LPVOID lpAddress, // 要分配的内存区域的地址
	DWORD dwSize, // 分配的大小(物理页的整数倍,10进制4096,16进制1000)
	DWORD flAllocationType, // 分配的类型(MEM_RESERVE,占用线形地址,不需要物理内存,MEM_COMMIT,占用线形地址,也需要使用物理页)
	DWORD flProtect // 该内存的初始保护属性(读写)
};
#include "stdafx.h"

int main(int argc , char* arvc[])
{
LPVOID p =  VirtualAlloc{
		NULL,
		1000*2,
		MEM_COMMIT, 
		PAGE_READWRITE 
};

	return ;
}

占用地址:
在这里插入图片描述

由图可知,多了一个390-391,两个物理页

释放内存:

VirtualFree(
	LPVOID lpAddress, // 区域地址
	SIZE_T dwSize, // 区域大小,字节
	DWORD dwFreeType // 类型(MEM_DECOMMIT,线形地址保留,不保留物理页,MEM_RELEASE ,线形地址不保留,物理页也不保留, 区域大小要为0)
);
#include "stdafx.h"

int main(int argc , char* arvc[])
{
LPVOID p =  VirtualAlloc{
		NULL,
		1000*2,
		MEM_COMMIT, 
		PAGE_READWRITE 
};
	VirtualFree(p,0x1000*2,MEM_DECOMMIT);
	return ;
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值