Разница между неуточнённым и неопределённым поведением
Разница между тем и другим такая:
Неуточнённое поведение - поведение, определяемое реализацией, задокументированное и последовательное на данном процессоре, программном окружении, версии системы и т. д.
Неуточнённое поведение может меняться от случая к случаю, но система обязательно сделает что-то разумное — а не уйдёт в аварийный режим.
В случае неопределённого поведения программа может делать любые непредсказуемые вещи.