Показать сообщение отдельно

  #8  
Старый 24.09.2009, 20:40
horlyk
Участник форума
Регистрация: 02.12.2007
Сообщений: 132
Провел на форуме:
233095

Репутация: 21
Отправить сообщение для horlyk с помощью ICQ
По умолчанию

Вот столкнулся с такой проблемкой:
Мне нужно вычитать область памяти, адрес которой известен(hex). Сразу в голове построился процесс написания программы и что буду использовать. Сразу решил использовать указатели. Но вот проблема - при вводе в консоль адреса ячейки, которым нужно инициализировать указатель, чет не то происходит - адрес присваивается, но значение не вычитывается(то есть не правильное ).

1. В какой тип переменной можно записать hex, а потом его использовать для инициализации указателя?(с интом чаром чет не вышло)
2. Мне нужно вычитать к примеру 50 адресов, идущих после известного. Инкримент указателя для этого подойдет?

Смотрю, чет никто не отвечает. Вот к приведу пример как я делал:

Код:
void main()
{
	int a = 19;	
	cout << "a = " << a << "\n&a = " << &a << endl;
}
это код в одной проге. Я ее запускаю и вижу адрес переменной а в памяти.

Далее я запускаю другую прогу, с кодом
Код:
void main()
{
	int *a = (int*)0x0012FF60;	//адрес переменной из 1-й проги
	cout << "a = " << a << "\n*a = " << *a << endl;	
}
Видно что адрес в указателе сменился, а вот доступиться к значению не могу по нормальному(((

А вообще нужно чтоб адрес был введен пользователем к примеру так:

Код:
char addr[10];
cin >> addr; // сюда вводится адрес из первой проги

char *mem = (char*) addr;
Подскажите плз, а то моск уже кипит от количеста перепробованных вариантов(((

Последний раз редактировалось horlyk; 25.09.2009 в 00:04..
 
Ответить с цитированием