Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Функция, которая принимает буфер памяти( Непойму условие%( ) |

08.03.2009, 23:34
|
|
Новичок
Регистрация: 02.07.2008
Сообщений: 17
Провел на форуме: 93013
Репутация:
8
|
|
Функция, которая принимает буфер памяти( Непойму условие%( )
Задача:
Код:
Здесь была задача...
Задачу решать не надо, только обьясните пожалуйста условие и если будут попутные вопросы ответе.
Последний раз редактировалось WON; 15.03.2009 в 12:31..
|
|
|

08.03.2009, 23:48
|
|
HARDstasy
Регистрация: 26.11.2004
Сообщений: 1,367
Провел на форуме: 4226592
Репутация:
2175
|
|
4ето типа такого имхо
...
type
TLol = record
field1: byte;
field2: byte;
field3: byte;
field4: byte;
field5: byte;
field6: byte;
end;
function myfunc(struct: ^TLol): byte;
begin
result := struct.field6;
end;
var
lol : ^TLol;
rez: byte;
begin
rez := myfunc(lol);
writeln('rezult = ', rez);
end;
|
|
|

09.03.2009, 22:09
|
|
Новичок
Регистрация: 02.07.2008
Сообщений: 17
Провел на форуме: 93013
Репутация:
8
|
|
Как на С/С++ изменить значение адреса. Конкретнее на примере:
получаю адресс 0x0013FF78 и мне надо изменить а точнее прибавить к текущему значению 4 байта.. как это зделать?
|
|
|

09.03.2009, 22:21
|
|
Участник форума
Регистрация: 19.05.2007
Сообщений: 281
Провел на форуме: 2823587
Репутация:
106
|
|
Если я все правильно понял то тебе нудно просто просто прибавить к текущему адресу еще 4 байта и все
Код:
mov eax,0013FF78h
add eax,4h
на сях как то так.
Код:
char *a;
a = (char *)(0x0013FF78+0x4);
|
|
|

09.03.2009, 23:00
|
|
Новичок
Регистрация: 02.07.2008
Сообщений: 17
Провел на форуме: 93013
Репутация:
8
|
|
Сообщение от St0nX
Код:
mov eax,0013FF78h
add eax,4h
Если начальный адрес храниться в переменной, а полученный адрес надо занести в указатель типа long то как будет этот код выглядить?
Сообщение от St0nX
Код:
char *a;
a = (char *)(0x0013FF78+0x4);
Код:
void f(void *v)
{
long *p= (v+0x5);
cout<<v<<" + 5 = "<<p<<endl;
};
а так оно не хочет работать  ... Говорит что неизвестен размер void *.
|
|
|

10.03.2009, 07:08
|
|
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме: 4226446
Репутация:
1564
|
|
Имхо, вам сюда надо было
https://forum.antichat.ru/thread40894.html
а вообще
Код:
long *p= (long *)((char *)v+0x5);
|
|
|

10.03.2009, 15:04
|
|
Новичок
Регистрация: 02.07.2008
Сообщений: 17
Провел на форуме: 93013
Репутация:
8
|
|
Спасибо... Тему можно закрывать...
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|