Некоторые распространённые ошибки, которые приводят к неопределённому поведению программ:
- Чтение или запись через нулевой указатель. 4 Нулевой указатель не указывает на какой-либо действительный объект, поэтому чаще всего вызывает ошибку сегментации. 4
- Отсутствие оператора возврата для функции с непустым возвратным типом. 4 Опускание оператора return в функции, которая имеет тип возврата, который не является void, является неопределённым поведением. 4
- Изменение строкового литерала. 4 Изменение строкового литерала даёт неопределённое поведение. 4
- Несколько неидентичных определений (правило одного определения). 4 Если класс, enum, встроенная функция, шаблон или член шаблона имеют внешнюю связь и определены в нескольких единицах трансляции, все определения должны быть идентичными или поведение не определено. 4
- Неправильное использование переменных. 2 Например, использование глобальных переменных вместо локальных может привести к неожиданным изменениям значений переменных и сложностям в отладке. 2