![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| N |
|
|||
|
Unregistered |
Пишу такую чушь
unsigned long *b = (unsigned long *)(0x40 << 4); cout << b << endl;// 00000400 cout << (long *)b << endl;// снова 00000400 cout << *b << endl; // error Научите пожалуйста, а? |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Здесь все верно.
Первый вывод - ты выводишь значение указателя. По сути адрес. 4 байта, целое. Нормальное число. Второй вывод - ты выводишь опять же 4 байта, целое. Такое приведение типа ничем не отличается от первого вывода. Третий вывод - вот здесь ты пытаешься вывести значение которое находится по адресу, который находится в 00000400. Что там находится -непонятно. Ну и ошибка само собой. |
|||
|
||||
| N |
|
|||
|
Unregistered |
А как же увидеть, что по этому адресу?
|
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Ой, что-то я не совсем то написал про недоступность
Вот этот адрес - 00000400 - он как раз и не доступен. Если ты работаешь в Винде, то доступные адреса начинаются с 0x00010000 (под Windows 98 - 0x00001000). Все, что меньше - недоступно. Как только ты пытаешься обратится к адресу 00000400 - получаешь ошибку. |
|||
|
||||
| N |
|
|||
|
Unregistered |
А что-же делать-то людоньки?!
|
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
В данной ситуации ничего сделать нельзя - это ограничения самой ОС. Защита памяти от неправильных обращений. Не лазь
|
|||
|
||||
| N |
|
|||
|
Unregistered |
Не поверишь, позавчера я этот фортель сотворил, но совершенно не помню как
|
|||
|
||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
а зачем тебе это |
|||
|
||||
| Alex101 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 891 Регистрация: 8.4.2002 Где: Москва Репутация: нет Всего: 10 |
Под виндами этого сделать совсем нельзя...
А в коде у тебя ошибки нет. -------------------- С уважением, А. Фролов. |
|||
|
||||
| Alex101 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 891 Регистрация: 8.4.2002 Где: Москва Репутация: нет Всего: 10 |
Что там находится? (По адресу 0x400). Инфу можно получить и по-другому.
-------------------- С уважением, А. Фролов. |
|||
|
||||
| Fantasist |
|
|||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: 4 Всего: 41 |
Почему? В Ring0 возможно все. -------------------- Волны гасят ветер... |
|||
|
||||
| Dagger |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 377 Регистрация: 4.9.2002 Где: Киев Репутация: нет Всего: 8 |
А как туда добраться?
|
|||
|
||||
| N |
|
|||
|
Unregistered |
Дрова ж как-то пишут
|
|||
|
||||
| Fantasist |
|
||||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: 4 Всего: 41 |
Вот именно так и добраться. -------------------- Волны гасят ветер... |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |