Einzelnen Beitrag anzeigen
Ungelesen 28.06.12, 15:59   #3
spartan-b292
Echter Freak
 
Benutzerbild von spartan-b292
 
Registriert seit: Mar 2010
Ort: /home/spartan-b292
Beiträge: 2.856
Bedankt: 1.701
spartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punkte
Standard

Ich würde mal auf folgendes Problem Tippen:

Nach dem du deinen Signalhandler aufgerufen hast, kommst du wieder an die Stelle im Code, die das Aufrufen des Signalhandlers verursacht hat. Da du dann aber wieder eine Division durch 0 durchführst, springt dein Programm wieder in den Signalhander.

Eine einfache Lösung wäre im Signalhandler die Variablen so zu verändern, dass du nicht mehr durch 0 dividierst. In deinem Beispiel dann b>0.

Alternativ könnte man noch mit setjmp/longjmp (in setjmp.h) arbeiten, die Division aber zu "korriegieren" wäre die einfachere Möglichkeit.

Trotzdem mal den Code liefern
__________________
"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety"
spartan-b292 ist offline   Mit Zitat antworten