VirtualAlloc/Ex 分配什么样的内存

What kind of memory does VirtualAlloc/Ex allocate

本文关键字:内存 什么样 分配 Ex VirtualAlloc      更新时间:2023-10-16

我知道C/C++风格的程序有内存部分,堆栈,堆,.text等。但是当我使用VirtualAlloc时,它从哪里分配内存?我不认为这是堆,因为我可以使用HeapAlloc。

建议将不胜感激!

堆内存驻留在由VirtualAlloc在后台分配的程序虚拟内存中。但是,问题在于 VirtualAlloc 仅在称为页面的大块中分配内存,这使得用于常规内存分配变得不可行。

出于这个原因,有 HeapAlloc 来管理分配的页面,并且可以将多个分配连接到一个页面中,这样您就不会不必要地为每个小分配分配整个页面(通常为 4KB,但这不是规则(。

这是不正确的:

我知道 C/C++ 风格的程序有内存部分、堆栈、堆、.text 等。

这些部分只能通过在系统系统上的链接和在其他系统上加载来退出。此上下文中的部分仅说明如何在内存中对应用程序的各个部分进行分组。当你的程序运行时,它只有内存。

像VirtualAlloc这样的函数只是将页面分配给进程。