Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
3 / 3 / 0
Регистрация: 12.07.2022
Сообщений: 216

Неопределённое поведение

12.07.2022, 02:00. Показов 4554. Ответов 21
Метки ub (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, коллеги! Хочется чуть больше понимать про это UB. Много статей посмотрел, но ещё куча вопросов. Везде эту вещь преподносят как опасность совершения какого угодно действия (хоть формат це, хоть отправка непристойных картинок контактам). Ясно что это страшилки, притянутые за уши. Хочется знать больше из практики.

1) Например обращение к неинициализированной переменной. Или разыменование указателя на освобождённую память. "Будет UB". Но всё ограничится лишь случайным мусорным значением в переменной, или же программа может полностью съехать с катушек (выполнить что-то неожиданное), даже если полученное неожиданное значение никак не влияет на логику в коде?

2) Переполнение в знаковом типе. Например прибавление 1 к максимальному значению. Просто на разных платформах могут получиться разные значения (из-за того что отличается способ хранения и порядок бит), или же будет ещё что-то непредсказуемое?

3) Теперь вещи посуровее, например запись за границами массива. Можно повредить стек и адрес возврата, и программа действительно сойдёт с ума. А может ли это привести к записи в память другого процесса? Это действительно более опасная вещь чем две предыдущие, или и там и там возможно всё?

4) Известны ли какие-то реальные случаи серьёзных последствий от какой-нибудь безобидной проги, где из-за UB например повредились какие-то файлы (но в её коде нет обращений к файлам), или хотя-бы BSOD? Ясно что у новичков бывает куча случаев UB, а кое-что работает годами и всё равно имеет где-то UB. Насколько реальна опасность повредить систему из-за этого?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.07.2022, 02:00
Ответы с готовыми решениями:

Неопределенное поведение С++
Вот такой вопрос: что из этого обязательно вызовет неопределенное поведение ? 1) Разыменование нулевого указателя 2) Выход за...

Неопределённое поведение кода
Здравствуйте! #include <stdio.h> int main() { int var; printf("%d\n", var); // <-- UB? return 0; ...

Создание массива, неопределенное поведение
Пишу такой код: #include <iostream> #include <stdlib.h> using namespace std; struct GL{ GL () { } virtual...

21
15.07.2022, 14:20  [ТС]
Студворк — интернет-сервис помощи студентам

Не по теме:

Fulcrum_013, жесть! Что это за зверь такой? HP или Crucial какой-нибудь?

0
17.07.2022, 11:04

Не по теме:

Geek Geekson, OCZ Trion 150. В 200-ой модели это уже пофиксили. А вооще на том контроллере у многих SSD такая проблема вылазила

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.07.2022, 11:04

Неопределенное поведение пользовательской функции
значит писал для лабы вот такой код: town.h #include <Windows.h> #include <conio.h> #include <iostream> #include...

Неопределенное поведение в Debug и Release
Писал программу для сложения больших чисел (в файле содержатся числа с количеством цифр от 1 до 30). При запуске через компилятор всё...

Keylogger, неопределенное поведение, undefined behaviour
#define WIN32_LEAN_AND_MEAN //Exclude rarely-used stuff from Windows headers #include <Windows.h> #include <fstream> #include...

Неопределенное поведение при приведении типа
Суть проблемы в том что, после принудительного приведения типа деструктор наследника не вызывается, вызывается деструктор базового типа.Но...

Один и тот же объект в одном выражении модифицируется несколько раз - неопределенное поведение
Уважаемые форумчане! Недавно столкнулся с интересным на мой взгляд необычным поведением компилятора c++ от keil. Определил класс шаблон...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru