c++ - VirtualAlloc/Ex 分配什么样的内存
问题描述
我知道 C/C++ 风格的程序有内存部分、堆栈、堆、.text 等。但是当我使用 VirtualAlloc 时,它从哪里分配内存?我不认为这是堆,因为我可以使用 HeapAlloc。
建议将不胜感激!
解决方案
堆内存驻留在您的程序虚拟内存中,由 VirtualAlloc 在后台分配。但是,问题在于 VirtualAlloc 仅在称为页面的大块中分配内存,这使得它无法用于一般的内存分配。
出于这个原因,HeapAlloc 管理分配的页面,并且可以将多个分配连接到一个页面中,这样您就不必为每个小的分配分配整个页面(通常是 4KB,但这不是规则)。
推荐阅读
- html - 为什么在具有边框半径的表格中,一行与 IE11 中的圆角重叠?
- mysql - 是否有一个选项来计算 SQL 中连接单词列表中的单词对
- r - 有没有办法将数据帧的行连接成一行
- python - 文本火车数据上的 Hyperopt:ValueError:无法连接零维数组
- r - 跨多列的多选调查问题的R频率表
- apache - Apache 安全设置 - 不确定在 Config 文件中的位置
- python - `TfidfVectorizer` 以什么方式处理个位数的数字?
- kendo-ui - 更改剑道文本框值会丢失格式
- python - XGBoost 与多标签
- angular - Angular Material Object(...) 不是函数