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

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

Войти
Регистрация
Восстановить пароль
 
Игорь с++
436 / 459 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
#1

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

10.04.2013, 13:07. Просмотров 1052. Ответов 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";
в чём ошибка , или где подводные камни ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2013, 13:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос по адресу получить значение (C++):

Указатель: Получить значение по адресу, указываемому указателем - C++
Написать программу, в которой выполнить следующие действия: a) Описать указатели на все известные типы данных; b) Выполнить для каждого...

Значение, хранящееся по адресу - C++
Как узнать адрес, по которому находится значение переменной, я уже знаю. это с помощью = &amp;var А как узнать значение по адресу...

Парадокс: значение переменной равно её адресу - C++
Друзья! Вот код, в нём всё понятно. Выводятся одинаковые значения. Но ведь этого не может быть! Хотя бы потому не может, что по адресу,...

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

Необработанное исключение по адресу, нарушение прав доступа при записи по адресу - C++
вот само задание: Авиарейсы (номер рейса, пункт назначения, время вылета, дата вылета, стоимость билета, количество мест). Выбор по дате...

как присвоить переменной значение, взятое по определенному адресу? - C++
Собственно у меня есть адрес (например, 010426D8), я знаю, что под этим адресом хранится целочисленное значение, как присвоить переменной...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.04.2013, 13:15 #2
Как инициализировать указатель произвольным адресом?
1
Игорь с++
436 / 459 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
10.04.2013, 13:19  [ТС] #3
alsav22, именно из за этой темы и стало интересно , но я что то не пойму как прочитать из адресса другого процесса . Я где то давно читал , что у разных процессов разделяемая память , и попасть в чужой нельзя , но я думаю как то всё равно можно же.
0
Croessmah
Эксперт CЭксперт С++
13202 / 7473 / 839
Регистрация: 27.09.2012
Сообщений: 18,367
Записей в блоге: 3
Завершенные тесты: 1
10.04.2013, 13:22 #4
Цитата Сообщение от Игорь с++ Посмотреть сообщение
о я думаю как то всё равно можно же.
API системы
1
Игорь с++
436 / 459 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
10.04.2013, 13:26  [ТС] #5
Croessmah, средствами одного языка я так понимаю это не преодолеть ?
0
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
10.04.2013, 13:42 #6
Попасть из адресного пространства одной программы в адресное пространство другой программы просто используя указатели нельзя.
Адресное пространство каждого процесса является защищенным.
Для взаимодействия нескольких программ между собой существуют специальные средства ( http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx )
Для чтения памяти другого процесса можно воспользоваться функцией ReadProcessMemory().

Добавлено через 33 секунды
* Все это относится к WinAPI.
1
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
10.04.2013, 13:52 #7
Адресные пространства двух процессов не пересекаются, хотя могут иметь даже одинаковые виртуальные адреса.
Почитай про устройство памяти в protected (ну и long) mode, в т.ч. про страничную адресацию. Адреса делятся на физические, линейные и логические (виртуальные). Те адреса, которые мы видим работая с С++ кодом - это виртуальные адреса (в общем случае, системные программисты могу "видеть" другие адреса), которые имеют смысл только внутри процесса.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2013, 13:52
Привет! Вот еще темы с ответами:

Исправить ошибку: необработанное исключение по адресу, нарушение прав доступа при записи по адресу - C++
Помогите, пожалуйста, исправит ошибку. Необработанное исключение по адресу 0x77D88E19 (ntdll.dll) в Lab11.exe: 0xC0000005: нарушение...

Поменять значение по указанному адресу в переменной типа std::string - C++
Здравствуйте форумчане. Не получается никак правильно использовать средства С++. Задача такова: Например есть две строки типа...

Вызвано исключение по адресу 0x013C1891 в Jacobi.exe: 0xC0000005: нарушение прав доступа при чтении по адресу - C++
#include &lt;math.h&gt; const double eps = 0.001; ///&lt; желаемая точность /// N - размерность матрицы; A - матрица коэффициентов, F -...

Необработанное исключение по адресу 0x00105FD7 в Динамические структуры: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCDCDCE09 - C++
Необработанное исключение по адресу 0x00105FD7 в Динамические структуры.exe: 0xC0000005: нарушение прав доступа при чтении по адресу...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.04.2013, 13:52
Ответ Создать тему
Опции темы

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