物理内存地址和指针地址不相同

问题描述 投票:1回答:1

嗨,我在玩c ++指针,还使用Microsoft的名为RamMap的程序来检查内存物理地址。

但是我发现RamMap的列表中不存在c ++中的可变指针的地址

例如:

#include <cstdlib>
#include <iostream>
#include<conio.h>
using namespace std;

int main()
{
    string var1="var1";
    string * foo = &var1;
    cout<<foo;

    getch();
    return 0;
}

返回0x61fde0

enter image description here

此后,我查看了RamMap并搜索了该地址,但找不到任何东西

enter image description here

有人可以帮助我吗?我很困惑,我注意到每次重新运行程序时指针地址都不会改变]

嗨,我在玩c ++指针,还使用Microsoft的名为RamMap的程序来检查内存物理地址。但是我发现c ++中的变量指针的地址不是...

c++ pointers memory malloc
1个回答
0
投票

每个进程都有其自己的由逻辑地址组成的内存视图。它们可能对应也可能不对应于物理地址,即实际RAM。但是即使它们确实对应,值仍然不同。

© www.soinside.com 2019 - 2024. All rights reserved.