所有人都可以告诉我如何获得变量的物理地址吗? (操作系统是Win7 64位)
像:
void main()
{
int a=10;
........
return;
}
如何获取变量的物理地址'' ?
答案 0 :(得分:2)
how can I get the physical address of variable 'a' ?
No, you can't.
您看到的地址是指virtual memory address
,而不是物理RAM地址。该程序在OS分配的虚拟内存上运行。如果进程开始执行,则为所有信息/数据所在的每个进程创建process address space
。有关流程地址空间的更多信息,请单击here。
答案 1 :(得分:0)
将打印虚拟地址。虚拟地址有时与物理地址有关系。了解虚拟地址与物理地址的关系,您需要了解x86的MMU以及Windows 7内存管理部分
答案 2 :(得分:-1)
回答您的问题是&a
可能会为您提供变量a
的物理地址但是如果您的代码是作为操作系统的一部分加载的,并且仅当您的操作系统在物理机上运行时。
注意:如果您的操作系统在虚拟机上运行,它将始终为您提供虚拟地址,或者如果您的代码在现代操作系统上作为常规应用程序加载,那么它也将是一个虚拟地址(逻辑地址) )。