Fehler, Irrtümer, Fragen - Seite 3150
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
ternärer Operator sieht prägnanter aus (IMHO)
noch knapper formuliert:
:))
Ich habe bereits geschrieben, dass Sie bei dieser Konstruktion mit rates_total auf den Pufferindex zugreifen (wenn prev_calculated == 0 ).
Und das ist ein Überlauf, denn rates_total ist die Größe des Puffers, dessen letztes Element rates_total-1 ist
Ja, ich verstehe, warum der Überlauf jetzt stattfindet!
Warum hat dieses Konstrukt früher funktioniert und warumfunktioniert es jetzt nicht mehr?
Weil der Puffer genau auf rates_total
Ich bin gespannt, was Artem zu sagen hat, er versteht das Problem.und nicht aufrates_total+1 verteilt ist
Ja, ich verstehe, warum der Überlauf jetzt stattfindet!
Warum hat dieses Design früher funktioniert,jetzt aber nicht mehr?
Weil der Puffer genau auf rates_total
und nicht aufrates_total+1 verteilt ist
Es gibt keine Wunder.
Wenn es vorher funktioniert hat, muss es ein anderer Code gewesen sein.
Mit diesem Entwurf.
Indikatorpuffer überschreitet die Grenzen.
Bitte zeigen Sie mir ein Beispiel fürTicks mit Zyklus i>=0
vielleicht habe ich vergessen, was ich falsch mache.
reduzieren Sie grob den Index um 2 oder 3 an der maximalen Kante, um sicher zu sein).
Es gibt keine Wunder.
Wenn es vorher funktioniert hat, muss es ein anderer Code gewesen sein.
Zuvor lautete die korrekte Grenzwertberechnung
und es würde in die Schleife i>=0 gehen.
Aber das funktioniert jetzt nicht mehr, weil die Grenze bei -1 liegt.
Die korrekte Berechnung lautete früher
und es würde in eine Schleife gehen i>=0
Jetzt geht er nicht mehr rein, weil der Grenzwert -1 ist.
Ich konnte mich vorher auch nicht mit demselben Code anmelden.
erfindet nichts.
Laden Sie den alten Build von Hatimlansky herunter und prüfen Sie ihn, wenn Sie mir nicht glauben.
Diese Diskussion ist hier fehl am Platz, sie gehört in einen Neulings-Thread
Wenn Sie dieses Design noch nicht verwendet haben, sollten Sie von einem Offtop absehen.
Ich konnte mich vorher auch nicht mit demselben Code anmelden
erfinde das nicht
von Hatimlansky laden Sie die alte Version herunter und prüfen Sie sie, wenn Sie mir nicht glauben.
Auch Artem verwendete diesen Build.
Das hat er oben beschrieben, also versteht nur er das Problem.
Die korrekte Berechnung lautete früher
und es würde in eine Schleife gehen i>=0
Und jetzt nicht mehr, denn der Grenzwert ist -1.
Es gab immer eine Prüfung: if(limit>1) limit=rates_total-1. Dies ist für Fälle gedacht, in denen es kein i+irgendwas in den Berechnungen gibt. Wenn ja, dann sollte dieses "wie viele-etwas" in das Konstrukt aufgenommen werden: limit=rates_total-1-some-something.
Ohne sie würde es immer zu einem Array Overrun kommen. Denn rates_total ist nichts anderes als Bars(). Wenn es also 5000 Balken gibt und wir den Index 5000 ansprechen, fallen wir außerhalb der Grenzen des Arrays (die Berechnung der Balken beginnt bei Null).
In Ihrem Beispiel ist die Berechnung des Grenzwertes falsch:
Das sollte so sein:
int limit = rates_total-prev_calculated;
Danach wird geprüft, ob das Limit>1 ist.
und wenn limit größer als eins ist, dann limit = rates_total-1