| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Указатель на 0x40 и т.д. |
| Автор: N 29.12.2002, 23:20 |
| Пишу такую чушь unsigned long *b = (unsigned long *)(0x40 << 4); cout << b << endl;// 00000400 cout << (long *)b << endl;// снова 00000400 cout << *b << endl; // error Научите пожалуйста, а? |
| Автор: AntonSaburov 29.12.2002, 23:32 |
| Здесь все верно. Первый вывод - ты выводишь значение указателя. По сути адрес. 4 байта, целое. Нормальное число. Второй вывод - ты выводишь опять же 4 байта, целое. Такое приведение типа ничем не отличается от первого вывода. Третий вывод - вот здесь ты пытаешься вывести значение которое находится по адресу, который находится в 00000400. Что там находится -непонятно. Ну и ошибка само собой. |
| Автор: N 29.12.2002, 23:52 |
| А как же увидеть, что по этому адресу? |
| Автор: AntonSaburov 29.12.2002, 23:58 |
| Ой, что-то я не совсем то написал про недоступность Вот этот адрес - 00000400 - он как раз и не доступен. Если ты работаешь в Винде, то доступные адреса начинаются с 0x00010000 (под Windows 98 - 0x00001000). Все, что меньше - недоступно. Как только ты пытаешься обратится к адресу 00000400 - получаешь ошибку. |
| Автор: N 30.12.2002, 00:11 |
| А что-же делать-то людоньки?! |
| Автор: AntonSaburov 30.12.2002, 00:20 |
| В данной ситуации ничего сделать нельзя - это ограничения самой ОС. Защита памяти от неправильных обращений. Не лазь |
| Автор: N 30.12.2002, 01:39 |
| Не поверишь, позавчера я этот фортель сотворил, но совершенно не помню как |
| Автор: Vaulter 30.12.2002, 12:47 | ||
а зачем тебе это |
| Автор: Alex101 30.12.2002, 21:23 |
| Под виндами этого сделать совсем нельзя... А в коде у тебя ошибки нет. |
| Автор: Alex101 30.12.2002, 22:17 |
| Что там находится? (По адресу 0x400). Инфу можно получить и по-другому. |
| Автор: Fantasist 31.12.2002, 06:23 | ||
Почему? В Ring0 возможно все. |
| Автор: Dagger 31.12.2002, 07:32 |
| А как туда добраться? |
| Автор: N 1.1.2003, 01:47 |
| Дрова ж как-то пишут |
| Автор: Fantasist 1.1.2003, 03:27 | ||||
Вот именно так и добраться. |