พฤติกรรมที่ไม่ได้กำหนดเป็นวิธีการให้อิสระแก่ผู้ดำเนินการ (เช่น คอมไพเลอร์หรือระบบปฏิบัติการ) และให้คอมพิวเตอร์ทำสิ่งที่ "ต้องการ" พูดอีกนัยหนึ่งคือไม่สนใจผลที่ตามมา
กรณีที่ความผิดพลาดในการแบ่งส่วนเกิดขึ้นเกิดขึ้นชั่วคราว สิ่งเหล่านี้จะไม่ส่งผลให้เกิดข้อผิดพลาดในการแบ่งส่วนเสมอไป แต่ยังสามารถทำงานได้อย่างถูกต้อง (หรืออย่างน้อยก็ปรากฏเป็น) ตัวอย่างเช่น พิจารณาส่วนย่อยของโค้ดต่อไปนี้ −
#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