Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Các hành vi chưa định nghĩa (Undefined Behavior) phổ biến trong C++


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ừ new size 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ề