Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

Core Dump (ความผิดพลาดในการแบ่งส่วน) ใน C/C++


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