Неопределённое поведение
Неопределённое поведение (, в ряде источников "непредсказуемое поведение") — свойство некоторых языков программирования (наиболее заметно в Си), программных библиотек и аппаратного обеспечения в определённых маргинальных ситуациях выдавать результат, зависящий от реализации компилятора (библиотеки, микросхемы) и случайных факторов наподобие состояния памяти или сработавшего прерывания. Другими словами, спецификация не определяет поведение языка (библиотеки, микросхемы) в любых возможных ситуациях, а говорит: «при условии А результат операции Б не определён». Допускать такую ситуацию в программе считается ошибкой; даже если на некотором компиляторе программа успешно выполняется, она не будет кроссплатформенной и может отказать на другой машине, в другой ОС или при других настройках компилятора.

Неопределенное поведение не следует путать с неуточняемым поведением (), при котором спецификация разрешает не любое поведение, а только ограниченный диапазон вариантов реализации.
Q9143
языков программирования
Concept
Q15777
Си
Concept
Q188860
программных библиотек
Concept
Q3966
аппаратного обеспечения
Concept
Q220764
прерывания
Concept
Q2101564
спецификация
Concept
Q174666
кроссплатформенной
Concept
Q4318017
неуточняемым поведением
Concept
Q1964707
Неопределённое поведение
Concept
subclass of
instance of