for-Schleife bricht zu früh ab
-
Hallo!
Ich probiers mal hier auf meiner Suche nach Hilfe.
Hab ein kleines Programm das eine for-Schleife durchlaufen soll aber diese zu früh beendet. Sprich statt 5Mio. Durchläufe machts nur 3,x Mio. und führt das Programm danach einfach weiter aus...
Benutze Ubuntu12.04 64bit mit CodeBlocks und GNUgcc.for(long double i = 0; i < tot_time; i += dt) { ... dt = 1 / fmax(p0l, p0r); ... }Liegts an dem long double? Hatte vorher nur double und da is die Schleife schon bei Werten von ungefähr 2,x Mio abgebrochen. Wie kann ich das ganz umgehen? Wo könnten sonst noch das Problem liegen, jenachdem kann ich weitere Zeilen posten.
Danke schonmal für eure Hilfe!
-
TimoS1703 schrieb:
i += dtUm welche Größenordnungen handelt es sich hier? Um 0.0000001er Schritte oder um 10.0er Schritte?
-
Handelte sich um Schritte der Größenordnung 1E-5.
Habs jetzt rausgefunden. Tagelang rumprobiert und kaum melde ich mich hier find ich den Fehler.
In der Schleife wurde ein Array beschrieben. War das Array voll wurde die Schleife beendet. Hab das Ding jetzt auf den Heap verlagert und vergrößert und scheint einwandfrei zu funktionieren.Danke trotzdem.
-
TimoS1703 schrieb:
In der Schleife wurde ein Array beschrieben. War das Array voll wurde die Schleife beendet. Hab das Ding jetzt auf den Heap verlagert und vergrößert und scheint einwandfrei zu funktionieren.
Das klingt so, als könnte man dir trotzdem helfen, wenn du mehr Code zeigen würdest. Man könnte dir zum Beispiel die Standardbibliothek zeigen. Deine Beschreibung klingt nämlich so, als würdest du das von Hand frickeln und wüsstest gar nicht, was in C++ so alles möglich ist.