2
能有人請解釋以下程序的輸出。爲什麼我爲父母和孩子獲得相同的價值& a。有趣的父母和孩子的行爲,而這樣做叉
他們必須有不同的物理地址。假如我認爲我得到的虛擬地址,那麼他們怎麼能有相同的虛擬地址,因爲據我所知每個物理地址是唯一綁定到虛擬地址。
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int pid=fork();
int a=10;
if(pid==0)
{
a=a+5;
printf("%d %d\n",a,&a);
}
else
{
a=a-5;
printf("%d %d\n",a,&a);
}
return 0;
}
這是一個很好的答案,但我想你應該更清楚的是,虛擬:物理映射爲M:N - 不僅可以在同一個物理地址映射到多個虛擬地址(在一個或多個地址空間中),同一個虛擬地址可以映射到多個物理地址(當然每個地址空間不超過一個這樣的映射)。後者似乎是這裏的混亂點。 – zwol