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