Честно говоря, статья — хрень полнейшая.
То ли автор говорит про Strict Aliasing Rules, то ли про то что указатель это не значение адреса памяти, то ли про оптимизации…
А потом еще пишет: "Так что такое указатель? Я не знаю полный ответ."
На своей волне где-то там плавает...
По факту в большинстве взрослых архитектур и ос (16 битный дос не берем) первые 64к адресного пространства процессов огорожены или вообще не выделены, т.е. любое обращение к ним даст segfault.
По какому-такому факту? Кто вам сказал этот бред? Что значит «не выделены»? Кто их должен «выделять»?
Я легко могу обратиться к адресу ниже 64к на x86 без ОС.
И да, разделяйте понятия «архитектура» и «ОС».
Кстати, процессор архитектуры x86 изначально запускается в 16-битном режиме, а уж после (по требованию загрузчика или ОС) переходит в защещенный.
Всегда с интересом читаю ваши статьи.
Но в данном случае мне непонятно одно… Почему стандарт языка, а за ним все следом говорят о том, что разыменование указателя с адресом 0 является UB? Ноль — это всего лишь адрес памяти к которому так же можно "достучаться" (я даже доказал это на одном известном форуме).
С таким же успехом можно сказать про любой указатель в любой программе.
Дело в том, что разработчики стандарта языка просто приняли за должное считать nullptr невалидным адресом. Но почему-то они не учли, что на языке C++ можно писать без конкретной ОС. Вообще без ОС, где по нулевому адресу (например на архитектуре x86) находится таблица векторов прерываний.
Хотелось бы услышать ваше мнение по этому поводу.
Тут я спорить не буду. Даже если у автора статьи есть вторая учётная запись то это простительно, на мой взгляд. Со стороны администрации можно сделать жест доброй воли и пренебречь правилами.
Другое дело, если вторая (третья, четвёртая ...) «учётка» была создана с другим умыслом и для других целей.
Честно говоря, статья — хрень полнейшая.
То ли автор говорит про Strict Aliasing Rules, то ли про то что указатель это не значение адреса памяти, то ли про оптимизации…
А потом еще пишет: "Так что такое указатель? Я не знаю полный ответ."
На своей волне где-то там плавает...
Ну ответьте хотя-бы на не бредовые вопросы.
Я Вас чем-то обидел?
Вы можете ответить хотя бы на один из моих вопросов?
Так я об этом и писал.
Про segfault я ничего и не говорил. Это к товарищу vanxant.
Это не "наезд", не обижайтесь.
Я легко могу обратиться к адресу ниже 64к на x86 без ОС.
И да, разделяйте понятия «архитектура» и «ОС».
Кстати, процессор архитектуры x86 изначально запускается в 16-битном режиме, а уж после (по требованию загрузчика или ОС) переходит в защещенный.
Всегда с интересом читаю ваши статьи.
Но в данном случае мне непонятно одно… Почему стандарт языка, а за ним все следом говорят о том, что разыменование указателя с адресом 0 является UB? Ноль — это всего лишь адрес памяти к которому так же можно "достучаться" (я даже доказал это на одном известном форуме).
С таким же успехом можно сказать про любой указатель в любой программе.
Дело в том, что разработчики стандарта языка просто приняли за должное считать nullptr невалидным адресом. Но почему-то они не учли, что на языке C++ можно писать без конкретной ОС. Вообще без ОС, где по нулевому адресу (например на архитектуре x86) находится таблица векторов прерываний.
Хотелось бы услышать ваше мнение по этому поводу.
Статья очень несодержательная.
Мало картинок.
Ваш код ужасен.
Всю статью не покидала мысль что же такое "eag". Надеюсь это не яйцо.
Два цикла while ввели меня в ступор…
Кстати, переменная key содержит один код клавиши или маску?
Другое дело, если вторая (третья, четвёртая ...) «учётка» была создана с другим умыслом и для других целей.
Но в итоге, после выхода из песочницы, псевдоним всё же будет раскрыт.