Computer >> Máy Tính >  >> Lập trình >> C ++

Các hành vi không xác định phổ biến trong lập trình C ++


Sau đây là những nguyên nhân phổ biến nhất của hành vi không xác định trong lập trình C ++. Lưu ý rằng tất cả những điều này đều được quy định trong tiêu chuẩn để dẫn đến hành vi không xác định và cần được tận dụng bằng mọi giá khi viết chương trình.

  • Tràn số nguyên có dấu
  • Tham chiếu đến một con trỏ NULL, một con trỏ được trả về bởi phân bổ "mới" có kích thước bằng 0, con trỏ chưa được khởi tạo chắc chắn, con trỏ tại một vị trí ngoài phần cuối của một mảng.
  • Sử dụng con trỏ đến các đối tượng nằm ngoài phạm vi hoặc đã bị xóa
  • Thực hiện phép tính con trỏ mang lại kết quả nằm ngoài ranh giới của một mảng.
  • Chuyển đổi con trỏ thành các đối tượng thuộc loại không tương thích
  • Đọc hoặc ghi vào một đối tượng hoặc mảng ở độ lệch âm
  • Thực hiện lệnh gọi hàm ảo đến các hàm ảo thuần túy của một đối tượng từ hàm tạo hoặc hàm hủy của nó
  • Không trả về giá trị từ một hàm trả về giá trị