ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมเพื่อทำความเข้าใจ core dump (segmentation fault) ใน C/C++
มันเกิดขึ้นเนื่องจากเหตุผลเช่นเมื่อโค้ดพยายามเขียนในหน่วยความจำแบบอ่านอย่างเดียวหรือพยายามเข้าถึงตำแหน่งหน่วยความจำที่เสียหาย
ตัวอย่าง
การปรับเปลี่ยนตัวอักษรสตริง
int main(){ char *str; str = "GfG"; *(str+1) = 'n'; return 0; }
การเข้าถึงนอกขอบเขตดัชนีอาร์เรย์
#include <iostream> using namespace std; int main(){ int arr[2]; arr[3] = 10; return 0; }
การเข้าถึงที่อยู่ที่ว่าง
#include <stdio.h> #include<alloc.h> int main(void){ int* p = malloc(8); *p = 100; free(p); *p = 110; return 0; }
ผลลัพธ์
Abnormal termination of program