Неопределённое поведение — это ситуация, когда в определённых маргинальных случаях поведение программного продукта или устройства может меняться неконтролируемым образом и приводить к некорректным результатам, но это не является ошибкой, и о такой возможности указано в спецификации. 1
Ошибки программирования — это нарушения синтаксических или семантических правил, из-за которых программа не должна компилироваться. 2
Таким образом, отличие неопределённого поведения от ошибок программирования в том, что неопределённое поведение не является ошибкой, а представляет собой особенность некоторых языков программирования, при которой результат выполнения программы может меняться в зависимости от различных случайных факторов, но при этом программа корректна синтаксически и семантически 234.