ความผิดพลาดของการแบ่งส่วนเป็นข้อผิดพลาดของคอมพิวเตอร์ที่เกิดขึ้นเมื่อโปรแกรมพยายามเข้าถึงพื้นที่ของหน่วยความจำด้วยวิธีที่ไม่ถูกต้อง ข้อผิดพลาดเหล่านี้สามารถอ่านข้อผิดพลาดที่มีความพยายามในการอ่านข้อมูลที่ไม่ได้เริ่มต้นอย่างถูกต้องหรือเขียนข้อผิดพลาดที่โปรแกรมพยายามเขียนข้อมูลไปยังตำแหน่งที่ไม่ถูกต้องในหน่วยความจำ ในการพูดจาคอมพิวเตอร์คำมักจะสั้นลงเพื่อ segfault เนื่องจาก segfaults สามารถเกิดขึ้นได้ทั้งการอ่านและการเขียนข้อมูลจึงสามารถเกิดขึ้นได้ในบริบทที่หลากหลายและมีชื่อเฉพาะที่แตกต่างกันรวมถึงข้อผิดพลาดของรถบัสบัฟเฟอร์ล้นหน่วยความผิดพลาดหน้าและการละเมิดที่เก็บข้อมูล
แม้ว่าความผิดพลาดในการแบ่งส่วนสามารถสร้างขึ้นในภาษาคอมพิวเตอร์บางภาษาได้ง่ายกว่าภาษาอื่น ๆ แต่ segfaults ไม่ใช่ส่วนหนึ่งของภาษาคอมพิวเตอร์ด้วยตนเอง ในทางทฤษฎีภาษาคอมพิวเตอร์ใด ๆ สามารถทำให้เกิดข้อผิดพลาดในการเขียนข้อมูลที่เกิดขึ้นกับ segfault ภาษาคอมพิวเตอร์ที่อนุญาตให้โปรแกรมเมอร์จัดการหน่วยความจำอย่างชัดเจนเช่น C ++ อนุญาตให้ผู้ใช้แนะนำ segfaults โดยไม่ได้ตั้งใจได้อย่างง่ายดายด้วยการเขียนโปรแกรมที่ไม่ดี ภาษาที่ไม่อนุญาตการจัดการหน่วยความจำอย่างชัดเจนเช่น Java จัดการกับปัญหาหน่วยความจำส่วนใหญ่โดยไม่มีการรบกวนของโปรแกรมเมอร์และดังนั้นจึงลดความผิดพลาดในการแบ่งส่วนโดยทำให้โปรแกรมเมอร์ไม่สามารถเข้าถึงพื้นที่นอกหน่วยความจำที่จัดสรร
วิธีการที่โปรแกรมเมอร์สามารถสร้างความผิดพลาดในการแบ่งส่วนแตกต่างกันไปขึ้นอยู่กับวิธีการใช้ข้อมูล มีโครงสร้างบางอย่างที่ง่ายต่อการสร้างข้อผิดพลาดนี้ด้วย ผู้ร้ายที่พบโดยทั่วไปของ segfault คือข้อผิดพลาดเกี่ยวกับการโอเวอร์โฟลว์ของอาเรย์ซึ่งมีข้อมูลเฉพาะอยู่ในสล็อตภายในตำแหน่งหน่วยความจำที่เฉพาะเจาะจง แต่โปรแกรมเมอร์พยายามเข้าถึงสล็อตที่ไม่มีอยู่ Segfaults เกิดจากสถานการณ์เหล่านี้มักจะยากที่จะติดตาม ภาษาคอมพิวเตอร์บางภาษามีการตรวจสอบอย่าง จำกัด ซึ่งคาดว่าจะเกิดข้อผิดพลาดประเภทนี้และจะไม่ยอมให้ผู้ใช้พยายามเข้าถึงช่องที่ไม่ถูกต้อง
วิธีการทั่วไปที่สามารถสร้าง segfaults เกิดขึ้นเมื่อภาษาคอมพิวเตอร์สองภาษาส่งผ่านข้อมูลระหว่างกันโดยใช้พร็อกซี ในบริบทนี้ความผิดพลาดของการแบ่งส่วนนั้นยากที่จะวินิจฉัยเพราะมันไม่ชัดเจนว่าภาษาหรือเลเยอร์ของรหัสการเขียนโปรแกรมมาจากข้อผิดพลาด แม้ว่าชั้นหนึ่งจะมีการตรวจสอบขอบเขตโดยนัยและไม่อนุญาตให้มี segfaults ในบริบท 99.9% แต่อาจเป็นงานที่ใช้เวลานานและน่าเบื่อมากเพื่อพิจารณาว่าข้อผิดพลาดมาจากที่ใด
วิธีที่ดีที่สุดในการหลีกเลี่ยงข้อผิดพลาดในการแบ่งกลุ่มคือต้องระมัดระวังอย่างมากกับการจัดการหน่วยความจำ วิธีปฏิบัติที่ดีที่สุดในการเขียนโปรแกรมแนะนำให้ผู้ใช้ควรเพิ่มหน่วยความจำทุกไบต์ที่จัดสรรด้วยตนเองในโปรแกรมอย่างชัดเจน นี่เป็นเรื่องยากที่จะทำ แต่การทำอย่างถูกต้องเป็นการเพิ่มโอกาสของโปรแกรมเมอร์ในการสร้างโปรแกรมที่แข็งแกร่งปราศจากข้อผิดพลาด


