Segmentation fault (segfault) xảy ra khi chương trình cố truy cập vùng nhớ mà hệ điều hành không cấp cho nó. Nói cách khác: truy cập vượt khỏi giới hạn bộ nhớ được phân bổ cho tiến trình.
Nguyên nhân chính do con trỏ:
- Con trỏ chưa khởi tạo đúng cách (chứa rác).
- Con trỏ trỏ đến bộ nhớ đã được giải phóng/realloc (dangling pointer).
- Con trỏ dùng trong mảng với chỉ số vượt giới hạn (out-of-bounds).
Khi segfault xảy ra, OS gửi tín hiệu SIGSEGV (Signal 11) và kết thúc tiến trình. Trên Linux, có thể sinh file core dump để debug.