2015-01-15 2 views
3

Когда мы печатаем адрес переменной в программе c, по моему пониманию, он отображает виртуальный адрес, потому что каждый раз, когда он приходит так же (кроме автоматических переменных). Есть ли способ узнать физический адрес памяти. Я использую 32-разрядную машину Linux.физический адрес переменной в c

+1

В языке C нет такого понятия, как «физический адрес» или «виртуальный адрес». – Lundin

ответ

11

Нет простого и портативного способа сделать это.

Отображение между виртуальным и физическим адресом происходит через блок управления памятью вашей ОС, который может свободно перемещать данные по мере их соответствия.

+2

И, в частности, переменная может даже не иметь физического адреса в определенный момент времени, если страница, содержащая эту переменную, была выгружена ... Или она может иметь адрес X при его печати, но к тому времени сделал это на экране, и вы его прочитали, теперь вместо этого он имеет адрес Y. – twalberg

Смежные вопросы