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

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

Восстановить пароль Регистрация
 
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
10.04.2013, 13:07     по адресу получить значение #1
Господа создаю программу которая задаёт значение и показывает адрес ячейке , запускаю её и в другой программе в исходник пишу этот адрес , но значение показывает совсем другое.

программа которая задаёт значение -
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++
C++ Необработанное исключение по адресу 0x00ED4891 в strings.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCCCCCCCC
C++ Необработанное исключение по адресу 0x00105FD7 в Динамические структуры: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCDCDCE09
C++ Исправить ошибку: необработанное исключение по адресу, нарушение прав доступа при записи по адресу
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.04.2013, 13:15     по адресу получить значение #2
Как инициализировать указатель произвольным адресом?
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
10.04.2013, 13:19  [ТС]     по адресу получить значение #3
alsav22, именно из за этой темы и стало интересно , но я что то не пойму как прочитать из адресса другого процесса . Я где то давно читал , что у разных процессов разделяемая память , и попасть в чужой нельзя , но я думаю как то всё равно можно же.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,832
Записей в блоге: 2
Завершенные тесты: 1
10.04.2013, 13:22     по адресу получить значение #4
Цитата Сообщение от Игорь с++ Посмотреть сообщение
о я думаю как то всё равно можно же.
API системы
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
10.04.2013, 13:26  [ТС]     по адресу получить значение #5
Croessmah, средствами одного языка я так понимаю это не преодолеть ?
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 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     по адресу получить значение
Еще ссылки по теме:

Разработать программу позволяющую получить дамп памяти по адресу содержащему вводимые числа C++
Почему при выводе указателя получаем для char - значение по адресу, а для других типов - адрес C++
Необработанное исключение по адресу, нарушение прав доступа при записи по адресу C++

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

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

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