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

ความผิดปกติของการแบ่งส่วนเป็นพฤติกรรมที่ไม่ได้กำหนดจริงใน C ++ หรือไม่


พฤติกรรมที่ไม่ได้กำหนดเป็นวิธีการให้อิสระแก่ผู้ดำเนินการ (เช่น คอมไพเลอร์หรือระบบปฏิบัติการ) และให้คอมพิวเตอร์ทำสิ่งที่ "ต้องการ" พูดอีกนัยหนึ่งคือไม่สนใจผลที่ตามมา

กรณีที่ความผิดพลาดในการแบ่งส่วนเกิดขึ้นเกิดขึ้นชั่วคราว สิ่งเหล่านี้จะไม่ส่งผลให้เกิดข้อผิดพลาดในการแบ่งส่วนเสมอไป แต่ยังสามารถทำงานได้อย่างถูกต้อง (หรืออย่างน้อยก็ปรากฏเป็น) ตัวอย่างเช่น พิจารณาส่วนย่อยของโค้ดต่อไปนี้ −

#include<iostream>
int main() {
    int arr[2];
    arr[0] = 0;
    arr[1] = 1;
    arr[2] = 2; // Undefined behaviour
    arr[3] = 3; // Undefined behaviour
}

โค้ดนี้อาจทำงานอย่างถูกต้องหรือส่งผลให้เกิดข้อผิดพลาดในการแบ่งส่วน ไม่ได้กำหนดไว้จริง ๆ และขึ้นอยู่กับการนำไปปฏิบัติ คุณสามารถอ่านเพิ่มเติมเกี่ยวกับพฤติกรรมที่ไม่ได้กำหนดได้ที่นี่ - https://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html