[英]Physical memory address and pointer address is not same
嗨,我正在使用 c++ 指針,還使用來自微軟的名為RamMap的程序來檢查 memory 物理地址。
但我發現 c++ 中的變量指針地址在 RamMap列表中不存在
例如:
#include <cstdlib>
#include <iostream>
#include<conio.h>
using namespace std;
int main()
{
string var1="var1";
string * foo = &var1;
cout<<foo;
getch();
return 0;
}
之后我查看了 RamMap 並搜索了這個地址但找不到任何東西
誰能幫我? 我很困惑,我注意到每次重新運行程序時我的指針地址都不會改變
每個進程都有自己的 memory 視圖,它由邏輯地址組成。 它們可能對應也可能不對應物理地址,即實際 RAM。 但即使它們確實對應,值仍然不同。
如果不是這種情況,很多事情都會 go 出錯。 但最明顯的一個可能是物理 memory 碎片問題。 想象一下,如果一個進程請求分配一個 4MB 的 memory 塊,並且有大量可用 RAM,但沒有連續的 4MB 塊。 哎喲。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.