WIN32申请内存 物理页 VirtualAlloc VirtualFree

Posted ganxiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WIN32申请内存 物理页 VirtualAlloc VirtualFree相关的知识,希望对你有一定的参考价值。

LPVOID VirtualAlloc(
LPVOID lpAddress, //指定内存地址,一般填NULL
DWORD dwSize, //分配内存大小 0x1000为1个物理页
DWORD flAllocationType, //分配类型 MEM_COMMIT地址空间和物理页都分  MEM_RESERVE只分地址空间                                          
DWORD flProtect //访问保护类型
);                     

 

BOOL VirtualFree(
LPVOID lpAddress, //申请内存返回的指针
DWORD dwSize, //释放内存大小
DWORD dwFreeType //释放类型 MEM_DECOMMIT释放物理页 MEM_RELEASE空间地址和物理页都释放 不过大小要填0
); 

 

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

#include "stdafx.h"
#include <WINDOWS.H>
int main(int argc, char* argv[])
{
    LPVOID p = VirtualAlloc(NULL,0x1000,MEM_COMMIT,PAGE_READWRITE);

    VirtualFree(p,0x1000,MEM_DECOMMIT);

    return 0;
}

 

以上是关于WIN32申请内存 物理页 VirtualAlloc VirtualFree的主要内容,如果未能解决你的问题,请参考以下文章

win32api之内存知识梳理

win764位系统上让32位程序能申请到4GB内存方法

Win32之内存管理之虚拟内存跟物理内存

iOS进程内存分配(页、栈、堆)

win10读文件时C语言申请内存空间最大能申请多少个

在 4GB 物理内存的机器上,申请 8G 内存会怎么样?