auf Linux segmentation fault aber auf Windows keine Probleme
-
Hi,
also ich hab das Problem, dass mein Programm auf Windows kompiliert und ausführbar ist ohne Probleme und auf Linux aber ein segmentation fault auftritt!
Und ich habe leider keine Ahnung wieso!! Kann mir da wer ein paar Tips geben?mfg max
-
Ohne Quelltext? Bestimmt nicht.
-
Frag gdb, frag Valgrind, und wenn Du den Fehler damit auf einen bestimmten Bereich eingrenzen konntest stell den Bereich hier ein und frag uns nochmal
-
Meine Kristallkugel sagt mir: Du hast irgendwo ein Speicherproblem, unter Windows hast du das Pech, dass es ohne Probleme läuft und Linux ist so anständig, dir zu sagen, dass du Mist baust.
-
fflush(stdin) vielleicht... ka, was gcc dazu sagt...
sprich zu uns, du irrer!
-
c.rackwitz schrieb:
fflush(stdin) vielleicht... ka, was gcc dazu sagt...
sprich zu uns, du irrer!
fflush() wird kompiliert, funktioniert halt nur nicht.
-
Daß es compilieren wird, ist klar. Aber die Chancen stehen gut, daß es dir auf einem Linux-System einfach dein Programm pulverisiert.
@max: Eine andere Möglichkeit wäre es, daß du eine Index-Variable nicht initialisiert hast(
char*text = malloc(...);int index;...text[index]='H';
) - das kann gut gehen, wenn der Compiler eine Default-Initialisierung übernimmt, aber damit kannst du genauso leicht quer durch den Speicher schießen.
-
da ich das problem selber sehr oft hatte (auch unter unix), überprüfe mal folgende Sachen im Code:
1. Viele if / else-if Abfragen. Reduziere die sogut wie es geht.
2. Zu wenig reservierter Speicher
3. Speicherüberlauf (mit free() den Speicher wieder freigeben wenn er nicht mehr gebraucht wird)
-
Stoppt das Rätselraten! Lasst den Op sprechen!
-
ja danke, es war zu wenig reservierter Speicher
mfg max