Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Игорь с++
 Аватар для Игорь с++
432 / 455 / 16
Регистрация: 26.01.2011
Сообщений: 2,031
#1

по адресу получить значение - C++

10.04.2013, 13:07. Просмотров 918. Ответов 6
Метки нет (Все метки)

Господа создаю программу которая задаёт значение и показывает адрес ячейке , запускаю её и в другой программе в исходник пишу этот адрес , но значение показывает совсем другое.

программа которая задаёт значение -
C++
1
2
3
4
5
6
int a = 5;
int *b = &a; // Г*äðåñ
int c = *b; // Гў c Г§Г*Г*Г·ГҐГ*ГЁГҐ a
    
    cout<<"adress = "<<b<<"\n";
    cout<<"znachenie = "<<c<<"\n";
которая читает -
C++
1
2
3
4
5
6
7
int *g;
    
    g=(int*)0x28ff44;
    
int r=*g;
 
cout<<r<<"\n";
в чём ошибка , или где подводные камни ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2013, 13:07     по адресу получить значение
Посмотрите здесь:

C++ Парадокс: значение переменной равно её адресу
C++ Получить последовательность b1,...,bn, где при i=1,2,...,n значение bi = 1+1/2+...+1/i
Значение, хранящееся по адресу C++
Получить значение часа из переменной int C++
C++ Исправить ошибку: необработанное исключение по адресу, нарушение прав доступа при записи по адресу
C++ Получить из массива случайное неповторяющееся значение
Разработать программу позволяющую получить дамп памяти по адресу содержащему вводимые числа C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5410 / 4806 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.04.2013, 13:15     по адресу получить значение #2
Как инициализировать указатель произвольным адресом?
Игорь с++
 Аватар для Игорь с++
432 / 455 / 16
Регистрация: 26.01.2011
Сообщений: 2,031
10.04.2013, 13:19  [ТС]     по адресу получить значение #3
alsav22, именно из за этой темы и стало интересно , но я что то не пойму как прочитать из адресса другого процесса . Я где то давно читал , что у разных процессов разделяемая память , и попасть в чужой нельзя , но я думаю как то всё равно можно же.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12495 / 7057 / 791
Регистрация: 27.09.2012
Сообщений: 17,434
Записей в блоге: 2
Завершенные тесты: 1
10.04.2013, 13:22     по адресу получить значение #4
Цитата Сообщение от Игорь с++ Посмотреть сообщение
о я думаю как то всё равно можно же.
API системы
Игорь с++
 Аватар для Игорь с++
432 / 455 / 16
Регистрация: 26.01.2011
Сообщений: 2,031
10.04.2013, 13:26  [ТС]     по адресу получить значение #5
Croessmah, средствами одного языка я так понимаю это не преодолеть ?
castaway
Эксперт С++
4869 / 3008 / 370
Регистрация: 10.11.2010
Сообщений: 11,059
Записей в блоге: 10
Завершенные тесты: 1
10.04.2013, 13:42     по адресу получить значение #6
Попасть из адресного пространства одной программы в адресное пространство другой программы просто используя указатели нельзя.
Адресное пространство каждого процесса является защищенным.
Для взаимодействия нескольких программ между собой существуют специальные средства ( http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx )
Для чтения памяти другого процесса можно воспользоваться функцией ReadProcessMemory().

Добавлено через 33 секунды
* Все это относится к WinAPI.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2013, 13:52     по адресу получить значение
Еще ссылки по теме:

Почему при выводе указателя получаем для char - значение по адресу, а для других типов - адрес C++
Поменять значение по указанному адресу в переменной типа std::string C++
Получить значение перечисления C++
C++ Как получить значение из функции?
Указатель: Получить значение по адресу, указываемому указателем C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Kastaneda
Форумчанин
Эксперт С++
 Аватар для Kastaneda
4252 / 2784 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
10.04.2013, 13:52     по адресу получить значение #7
Адресные пространства двух процессов не пересекаются, хотя могут иметь даже одинаковые виртуальные адреса.
Почитай про устройство памяти в protected (ну и long) mode, в т.ч. про страничную адресацию. Адреса делятся на физические, линейные и логические (виртуальные). Те адреса, которые мы видим работая с С++ кодом - это виртуальные адреса (в общем случае, системные программисты могу "видеть" другие адреса), которые имеют смысл только внутри процесса.
Yandex
Объявления
10.04.2013, 13:52     по адресу получить значение
Ответ Создать тему
Опции темы

Текущее время: 17:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru