Problem bei Rekursion

DarkPhoenixX

Mitglied
Hallo

Ich habe eine Rekursion, die bei jeder Rekursion mehrere weitere Rekursionen aufruft.
Das klappt soweit gut, nur das mein übergebener orginal Wert, der nicht geändert wird, sich auf unerklärliche Weiße ändert. Ich bin ratlos

Hier ist der Code:


Die Klasse rufe ich mit

Algo_WorkII app1 = new Algo_WorkII(get_Index(tmp.get(0).toString()), tmp_matrix, reglist, reglist_inverse);
Algo_WorkII app2 = new Algo_WorkII(get_Index(tmp.get(0).toString()), tmp_matrix, reglist, reglist_inverse);

auf.

Das lustige an dieser Sache ist, dass app1 die richtige tmp_matrix berechnet.
app2 bekommt dann die schon verdrehte tmp_matrix von app1?!
Ich habe keine Ahnung wieso, noch was man dagegen tun kann.
Logisch dürfte sowas nicht passieren, da ich von einer Klasse auf eine andere zugreife und Variablen übergebe.

Ich bin ratlos
Bitte Hilfe
 
Zuletzt bearbeitet:
Hallo, welcher Wert ändert sich?

Dein Code ist ziemlich schwer zu überblicken, es wäre sinnvoll gewesen wenn du mehr kommentiert hättest. Selbst wenn du das ganze jetzt mal zum laufen bringst wirst du dich eine Woche nachdem du die Klasse nicht mehr angerührt hast selbst nicht mehr zurecht finden :)
 
Algo_WorkII app1 = new Algo_WorkII(get_Index(tmp.get(0).toString()), tmp_matrix, reglist, reglist_inverse);

Sorry, ich weiß, ich sollte dokumentieren, aber ich schreibe erst immer im Nachhinein Kommentare.

Wie gesagt ich verstehe logisch nicht wieso sich ausgerechnet dieser fette Text ändert.
Ich schätze ich habe ein Problem mit Multithreading
 
Wenn du mir jetzt noch sagst mit welchen Werten du tmp und tmp_matrix initialisierst, bzw. mit welchen du es getestet hast, könnte ich das ganze mal debuggen und so vielleicht nachvollziehen :)
 
Ich habe nun den Fehler gefunden.
Die Variable matrix wurde nicht dupliziert, sondern als gesamtes in die Methode gesteckt.
Dadurch kam es zu Fehlern, weil die Variable direkt beschrieben wurde.

Danke kaMii für deine Mühen!
 
Nichts zu danken, hab mir zwar das ganze mal angeschaut aber da hätte ich mir wieder einbisschen mathematisches Grundwissen aneignen müssen. Gut das du den Fehler selbst gefunden hast!
 
Zurück