19.私有内存的申请与释放 2026-7-29 Notes #滴水基础_Win32 申请内存的两种方式 通过VirtualAlloc/VirtualAllocEx申请的Private Memory 通过CreateFileMapping映射的Mapped Memory 12345678910111213141516171819#include <memoryapi.h>#include <minwindef.h>#include <stdio.h>#include <synchapi.h>#include <winnt.h>int main(int argc, char *argv[]) { LPVOID p = VirtualAlloc( NULL, //要分配的内存区域的地址 0x1000*2, //分配的大小 MEM_COMMIT, //分配的类型 例如:MEM_RESERVE MEM_COMMIT PAGE_READWRITE //该内存的初始保护属性 ); Sleep(5000); VirtualFree(p, 0x1000*2, MEM_DECOMMIT); return 0;} 堆与栈1234567891011121314#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]) { int x = 0x12345678; int *y = (int*)malloc(sizeof(int)*128); // new = malloc + 构造 printf("栈:%p\n",&x); printf("堆:%p\n",y); getchar(); //malloc->HeapAlloc->没有进内核 return 0;} 关于本文 由 GuQing 撰写,采用 CC BY-NC 4.0 许可协议。 阅读线路 沿“滴水基础_Win32”连续阅读 选择当前文章所属的标签或分类,并决定上下篇的排列顺序。 线路 滴水基础_Win32 Notes 顺序 最新优先 最早优先 标题 A→Z 标题 Z→A 滴水基础_Win32 · 第 15 / 30 篇 上一篇 18.虚拟内存与物理内存 上一篇 本线路已到起点 下一篇 15.第一个Windows程序 下一篇 本线路已到终点