Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Undefined Behaviors ที่พบบ่อยใน C++


รายการสาเหตุหลักของ Undefined Behavior ใน C++ (ระบุในมาตรฐาน) ควรหลีกเลี่ยงทุกประการ:

  • Signed integer overflow
  • Dereference NULL pointer, pointer จาก new ขนาด 0, pointer ไม่ได้ initialize, pointer เกินขอบเขต array
  • ใช้ pointer ชี้ object ที่หมด scope หรือถูก delete แล้ว (dangling pointer)
  • Pointer arithmetic ให้ผลลัพธ์อยู่นอกขอบเขต array
  • แปลง pointer ระหว่างชนิดที่ incompatible
  • อ่าน/เขียน object/array ด้วย offset ติดลบ
  • เรียก pure virtual function จาก constructor/destructor
  • ไม่ return ค่าใน value-returning function

ทั้งหมดนี้เป็น UB อย่างชัดเจนในมาตรฐาน ต้องหลีกเลี่ยงให้หมด