Разбираем, что такое
Undefined Behavior в C++ и почему после него язык «ничего не обещает»: от эффекта «в
Debug работает, в
Release падает» до причин, из‑за которых оптимизатор меняет поведение. На примерах показываем типовые источники UB (выход за границы через
operator[], деление на ноль,
signed overflow, некорректные сдвиги), собираем безопасную мини‑архитектуру для
StudyLog и обсуждаем, как искать UB с помощью санитайзеров (
ASan/
UBSan).