ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมเพื่อทำความเข้าใจ 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