|
Модераторы: Daevaorn |
|
admsasha |
|
||||
Опытный Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
Есть вот такой код
Вывод
Проверял на https://www.onlinegdb.com/online_c++_compiler Почему??? |
||||
|
|||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: 1 Всего: 12 |
И правда дичь какая то.
Более того если заменить присваивание на что то вроде
оно так же отработает. Какие то внутренние "оптимизации" наверное. Видимо НАВЯЗЧИВОЕ выпрямление дробовика направленного в ногу. Скорей всего зависит от компилятора (g++ выпрямляет) PS. А кто то еще php ругает ) Это сообщение отредактировал(а) _zorn_ - 22.9.2021, 16:47 |
|||
|
||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: 1 Всего: 12 |
||||
|
||||
xvr |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
||||
|
||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: 1 Всего: 12 |
Нормальный человек ждет что `null->something` есть обращение к нулевому указателю и все должно упасть уже сейчас.
Курильщики же считают нормальным, то что можно составить некорректную программу и она не будет падать Я сам курильщик (php), но даже там такой дичи нет. Если бы метод хотя бы статическим был, я бы еще понял. PS. Подсказать сколько "неуловимых" ошибок можно насобирать когда иногда приходит null ? А если "обычно" не падает ? Это сообщение отредактировал(а) _zorn_ - 25.9.2021, 15:55 |
|||
|
||||
xvr |
|
||||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
В С никто никому ничего не должен Обычный UB
Некорректная программа имеет право вести себя как ей вздумается - падать или работать, например по фазам луны ТС спрашивал, почему не упало - я ответил. Можно ли на это закладываться? Нет. |
||||
|
|||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: 1 Всего: 12 |
Дело в том что в С это бы упало если бы там были классы и объекты. Обычное обращение к невыделенной памяти... Вы же имели ввиду C++ ? В С компилятор не станет выделять память в итоговом бинарнике, если ты указал что переменная должна равняться null без явного malloc и т.п. Это не UB, а тупая хрень. Нет ни new и ничего подобного. Это сообщение отредактировал(а) _zorn_ - 1.10.2021, 19:45 |
|||
|
||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: 1 Всего: 12 |
||||
|
||||
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |