Например, когда мы пишем:int a;
и выполнение &a
дает нам некоторый адрес в шестнадцатеричной форме 0x12345678
, который мы называем виртуальным адресом.Теперь, когда мы пытаемся сделатьint *temp = 0xfe000000;
этот адрес действует как виртуальный адрес или физический адрес?Насколько я знаю, виртуальные адреса предоставляются ОС, которые в дальнейшем преобразуются в физические адреса MMU.
Насколько я знаю, между ними существует механизм подкачки, который сопоставляет виртуальный адрес с доступным физическим адресом.Что происходит, когда мы даем адрес указателю?Этот адрес действует как виртуальный адрес, который затем обрабатывается MMU для указания на конкретный физический адрес, или он действует как физический адрес сам по себе?
int temp;
printf("%x \n", &temp);
int *temp2 = 0xfe000000; //This is just an example address. It could be any address
Этот адрес (0xfe000000) действует как реальный физический адрес или виртуальный адрес?