habe bei einem Programm, wenn es läuft, diesen Laufzeitfehler
"Segmentation fault [core dumped]
was mache ich falsch ?
schönen Abend, Reinhard
habe bei einem Programm, wenn es läuft, diesen Laufzeitfehler
"Segmentation fault [core dumped]
was mache ich falsch ?
schönen Abend, Reinhard
du schreibst in / liest von einem nicht zuläßigen speicherbereich
irgendwo hast du einen wurschl mit pointern.
häufige fehlerquelle ist das arbeiten mit char - pointern zwecks
"string verarbeitung"
tip: alle pointer immer initialisieren (mit NULL oder gültigen wert)
kleine beispiele, die grantierte probleme verursachen:
char buf[10];
strcat(buf, "test");
oder
char buf[10];
strcpy(buf, "fgsdfgfdsgfdsgfd");
oder
char *mytext = "";
strcat(mytext, othertext);
usw.
es koennte aber auch etwas sein, wie folgt:
char *line;
while (fgets (line, 100, fp) != NULL) { ... }
die funktion fgets() reserviert keinen speicher und damit werden die daten irgendwo im speicher abgelegt (dort, wo line zufaellig hinzeigt)
gruesse
tom
hi!
ein tool das hierbei oft weiterhilft ist strace:
listet dir system calls deines programmes auf
strace <program_name> eingeben
in Manpages findest du eine genaue Beschreibung
gn8,
Poidl
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!