誰かが以下のプログラムの出力を説明できますか?親と子の両方で同じ値の&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;
}