Segmentation Fault
Ein Segmentation Fault ist ein Laufzeitfehler, der entsteht, wenn ein Programm auf einen Speicherbereich zugreift, auf den es nicht zugreifen darf.
Typische Ursachen:
- Dereferenzierung eines nicht initialisierten Pointers
- Dereferenzierung einer ungültigen Adresse
- Zugriff außerhalb eines Arrays
- Zugriff auf bereits freigegebenen Speicher
- Schreiben in schreibgeschützten Speicher
Beispiel:
int *meinezahl;
meinezahl = 60412;
printf("%d\n", *meinezahl);
Hier wird der Pointer auf eine beliebige Adresse gesetzt. Beim Dereferenzieren versucht das Programm, auf Speicher zuzugreifen, der ihm nicht gehört.
Wichtig
Ein Segmentation Fault ist eine Schutzreaktion des Betriebssystems: Das Programm wird beendet, damit es nicht fremden Speicher beschädigt.