1、建立一个控制台程序,查看系统物理内存大小、页文件大小、虚拟内存大小。2、使用VitualAlloc()和malloc()分配一定数量的虚拟内存空间和物理内存空间,再次按1的要求查看相关内存参数。 2、使用VitualFree()和free()释放步骤2分配的内存和虚拟内存,再次按1的要求查看相关内存参数。
时间: 2024-03-13 18:48:03 浏览: 37
获取设备内存大小和剩余内存大小
好的,我已经记录下来了您的问题。下面是我的回答:
1. 要查看系统物理内存大小、页文件大小、虚拟内存大小,可以使用以下命令:
```
systeminfo | find "Memory"
```
这个命令会输出系统的物理内存大小、可用的物理内存大小、虚拟内存大小、可用的虚拟内存大小、页文件大小和可用的页文件大小。
2. 要使用 VirtualAlloc() 和 malloc() 分配一定数量的虚拟内存空间和物理内存空间,可以按照以下步骤进行:
```c++
#include <iostream>
#include <windows.h>
int main() {
// 分配 1MB 的虚拟内存空间
LPVOID lpvMem = VirtualAlloc(NULL, 1024 * 1024, MEM_COMMIT, PAGE_READWRITE);
if (lpvMem == NULL) {
std::cout << "VirtualAlloc failed." << std::endl;
return 1;
}
// 分配 1MB 的物理内存空间
char* pMem = (char*)malloc(1024 * 1024);
if (pMem == NULL) {
std::cout << "malloc failed." << std::endl;
return 1;
}
// 输出系统内存信息
system("systeminfo | find \"Memory\"");
// 释放分配的内存
free(pMem);
VirtualFree(lpvMem, 0, MEM_RELEASE);
return 0;
}
```
这段代码会在内存中分别分配 1MB 的虚拟内存空间和物理内存空间,然后输出系统内存信息。注意,VirtualAlloc() 分配的虚拟内存空间只是逻辑上的分配,并不一定会占用物理内存。
3. 要使用 VirtualFree() 和 free() 释放步骤 2 分配的内存和虚拟内存,可以在步骤 2 的代码中添加以下两行代码:
```c++
free(pMem);
VirtualFree(lpvMem, 0, MEM_RELEASE);
```
这两行代码会释放分配的物理内存和虚拟内存。注意,VirtualFree() 的第三个参数必须为 MEM_RELEASE,否则不会释放虚拟内存空间。
阅读全文