Dưới đây là các nguyên nhân phổ biến nhất gây Undefined Behavior trong C++. Tất cả đều được quy chuẩn dẫn đến UB và phải tránh tuyệt đối khi viết chương trình.
- Tràn số nguyên có dấu (Signed integer overflow)
- Giải tham chiếu con trỏ NULL, con trỏ từ
newsize 0, con trỏ chưa khởi tạo, con trỏ vượt cuối mảng - Sử dụng con trỏ đến đối tượng đã hết phạm vi hoặc đã
delete - Thực hiện phép toán con trỏ cho kết quả ngoài giới hạn mảng
- Chuyển đổi con trỏ giữa kiểu đối tượng không tương thích
- Đọc/ghi đối tượng/mảng ở offset âm
- Gọi hàm ảo thuần túy từ constructor/destructor của đối tượng
- Không trả về giá trị từ hàm có kiểu trả về