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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.63
Poet
2 / 2 / 0
Регистрация: 10.09.2009
Сообщений: 91
#1

Значение, хранящееся по адресу - C++

19.03.2011, 09:40. Просмотров 2419. Ответов 10
Метки нет (Все метки)

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

А как узнать значение по адресу вообще? То есть если известен только адрес, и требуется узнать что там на нем. При том не используя переменные и указатели.
Вобще, возможно ли такое?

Я написал

cout << 0x10101010;

результат выдал. Но конечно же всегда одинаковый при каждом запуске.
Хотелось бы уточнить что это получилось такое?
И второе: это выводится значение адреса, который занимает сама программа или вся система вобще?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2011, 09:40     Значение, хранящееся по адресу
Посмотрите здесь:

C++ Парадокс: значение переменной равно её адресу
C++ по адресу получить значение
C++ Необработанное исключение по адресу
C++ Необработанное исключение по адресу 0x00ED4891 в strings.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCCCCCCCC
C++ Необработанное исключение по адресу 0x00105FD7 в Динамические структуры: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCDCDCE09
C++ Исправить ошибку: необработанное исключение по адресу, нарушение прав доступа при записи по адресу
C++ На сколько изменится число, хранящееся в переменной
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bigredcat
364 / 311 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
19.03.2011, 10:29     Значение, хранящееся по адресу #2
cout << 0x10101010; это вы выводите само значение 0x10101010 только в десятичном представлении. Попытка прочитать значение хранящегося по адресу 0x10101010 скорее всего вызовет у вас исключение Access Violation.
Попробуйте вот так cout << hex << 0x00400000 << ":" << *(int*)0x00400000;
HighPredator
 Аватар для HighPredator
5408 / 1791 / 327
Регистрация: 10.12.2010
Сообщений: 5,293
Записей в блоге: 3
19.03.2011, 10:30     Значение, хранящееся по адресу #3
Цитата Сообщение от Poet Посмотреть сообщение
что это получилось такое?
Вы вывели на экран число.
Цитата Сообщение от Poet Посмотреть сообщение
это выводится значение адреса, который занимает сама программа или вся система вобще?
Нет, это просто число.
Kastaneda
Форумчанин
Эксперт С++
 Аватар для Kastaneda
4252 / 2784 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
19.03.2011, 10:31     Значение, хранящееся по адресу #4
Цитата Сообщение от Poet Посмотреть сообщение
результат выдал. Но конечно же всегда одинаковый при каждом запуске.
Хотелось бы уточнить что это получилось такое?
И второе: это выводится значение адреса, который занимает сама программа или вся система вобще?
Дай угадаю, выводится 269488144 ? )))
Это выводится число 0x10101010 в десятичном виде и не более того.

Цитата Сообщение от Poet Посмотреть сообщение
А как узнать значение по адресу вообще? То есть если известен только адрес, и требуется узнать что там на нем. При том не используя переменные и указатели.
Вобще, возможно ли такое?
Возможно, вот так:
C++
1
std::cout<<*(reinterpret_cast<unsigned char*>(0x01010101));
Но это совершенно бессмысленное занятие, и, скорей всего, будет ошибка доступа при чтении.

А зачем тебе понадобилось лазить по адресам в языке C? В ассемблере и то метки используются, чтоб самому адреса не просчитывать.

Добавлено через 1 минуту
опоздал...
Poet
2 / 2 / 0
Регистрация: 10.09.2009
Сообщений: 91
19.03.2011, 11:51  [ТС]     Значение, хранящееся по адресу #5
Цитата Сообщение от Kastaneda Посмотреть сообщение
А зачем тебе понадобилось лазить по адресам в языке C?
Пытливый ум и все такое))

добавлено:
самофэйспалм удался))

Добавлено через 10 минут
Цитата Сообщение от bigredcat Посмотреть сообщение
cout << hex << 0x00400000 << ":" << *(int*)0x00400000;
Спасибо) теперь буду знать как проверять работоспособность антивируса)
bigredcat
364 / 311 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
19.03.2011, 12:05     Значение, хранящееся по адресу #6
Цитата Сообщение от Poet Посмотреть сообщение
Спасибо) теперь буду знать как проверять работоспособность антивируса)
Да здесь ничего особо криминального нет, просто чтение содержимого по базовому (обычно) адресу загрузки ехе файла
Poet
2 / 2 / 0
Регистрация: 10.09.2009
Сообщений: 91
19.03.2011, 12:09  [ТС]     Значение, хранящееся по адресу #7
память не могет быть read
только вчера гуглил как ее отключать)
Kastaneda
Форумчанин
Эксперт С++
 Аватар для Kastaneda
4252 / 2784 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
19.03.2011, 12:12     Значение, хранящееся по адресу #8
Цитата Сообщение от Poet Посмотреть сообщение
Спасибо) теперь буду знать как проверять работоспособность антивируса)
Ты представляешь себе, что такое страничная организация памяти?
Poet
2 / 2 / 0
Регистрация: 10.09.2009
Сообщений: 91
19.03.2011, 12:15  [ТС]     Значение, хранящееся по адресу #9
спросил у лысого расческу...
Kastaneda
Форумчанин
Эксперт С++
 Аватар для Kastaneda
4252 / 2784 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
19.03.2011, 12:18     Значение, хранящееся по адресу #10
Просто так, как показали выше, можно получить значение по адресу внутри своего процесса (если такой адрес существует), и не более того, т.е. опять же повторюсь - абсолютно бесполезная информация.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2011, 12:25     Значение, хранящееся по адресу
Еще ссылки по теме:

Почему при выводе указателя получаем для char - значение по адресу, а для других типов - адрес C++
Необработанное исключение по адресу, нарушение прав доступа при записи по адресу C++
Вызвано исключение по адресу 0x013C1891 в Jacobi.exe: 0xC0000005: нарушение прав доступа при чтении по адресу C++
Поменять значение по указанному адресу в переменной типа std::string C++
Указатель: Получить значение по адресу, указываемому указателем C++

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

Или воспользуйтесь поиском по форуму:
Poet
2 / 2 / 0
Регистрация: 10.09.2009
Сообщений: 91
19.03.2011, 12:25  [ТС]     Значение, хранящееся по адресу #11
нуууу... если ее можно узнать значит, она наверно зачем-то нужна)
Yandex
Объявления
19.03.2011, 12:25     Значение, хранящееся по адресу
Ответ Создать тему
Опции темы

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