Задача: считать доступные сегодня списки в доме. Не знаю даже как дойти до этого.
Захожу в СЕ, вбиваю список который доступен. Получаю 2 адреса.
Делаю новый скан но с другим списком. Опять 2 адреса но один из них более менее близок к одному адресу из первого скана.
Перехожу в память и замечаю что это (см. на красный кружочек)
[Ссылки могут видеть только зарегистрированные пользователи. ]
указывает что это 11 список. Радуюсь. Перехожу на другой клиент. Все адреса слетают. Нахожу их по новой и понимаю что то чт оя нашел раньше вообще никаким местом не статично. Расстраиваюсь. Собираюсь с силами и взываю к силе великих людей данного ресурса.
Как читать такие элементарные вещи с клиента? Может кто помочь советом как разобраться в данном случае/вообще в чтении с клиента?
Большая часть адресов не статичны, а вычисляемые по цепочке, начиная с базового адреса или другого статичного.
Для примера приведу небольшой код на паскале:
Код:
var
P: ^Byte;
begin
GetMem(P, 1);
P^ := 10;
FreeMem(P, 1);
end;
адрес переменной Р-статичный, но что бы узнать что лежит по адресу в указателе, надо сначала считать значение адреса из переменной и потом уже читать значение по полученному адресу. Нередко по полученному адресу находится так же указатель, в котором в свою очередь может находиться другой указатель. Эти адреса друг в друге образуют цепочку и чтобы добраться до значения, придется прочитать всю цепочку начиная со статического адреса.
Есть еще такое понятие как смещение. Так же для примера приведу код на паскале:
Код:
var
A: array [0..9] of byte;
begin
A[5] := 10;
end;
адрес до начала массива - статичный, но чтобы узнать что лежит в 5-й ячейке, надо сдвинутся относительно статического адреса на 5 и уже по полученному адресу читать значение.
________________
backup - акт проявления трусости
Последний раз редактировалось pw.assistant; 25.02.2017 в 14:59.