
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
Ja, ich weiß, und ich habe Code zitiert, der keinen Ausführungsfehler verursacht, sondern das Skript in einer Schleife laufen lässt
wird der letzte Ausdruck nicht ausgegeben?
Oder die vorletzte?
Und der letzte Exponentenaufruf friert nicht ein?
Welche Linie erreicht der Algorithmus?
haben Sie die Abdrücke überall angebracht?
Nein, ist es nicht.
Nein, ist es nicht.
Wiederholungsfrage - haben Sie einen Exponenten für 2/3/8 berechnet?
und außerdem sieht es seltsam aus.
1071644672
Woher kommt das Geld?hat es so gemacht:
im Protokoll:
wenn auskommentiert: // if(i3==2 && i2==3 && i1==8) Print("falscher exp!!!! Aufruf");
wird wieder eine Endlosschleife entstehen :)
wenn ausgeblendet:// if(i3==2 && i2==3 && i1==8) Print("falscher exp!!!! Aufruf");
wird es wieder eine Endlosschleife sein :)
i1 ist am Ende der Schleife gleich 7, obwohl der maximale Index der dritten Dimension 6 ist. Sie sollte eigentlich außerhalb des Bereichs liegen, aber wenn nicht, ist es durchaus möglich, dass die Zeichenfolge
kann z.B. den Wert von i2 überschreiben. Aber in diesem Fall ist es ein Fehler im mql-Compiler.
Sie können z.B. die Array-Definition in globale Variablen verschieben - dann sollte sich das Verhalten des obigen Codes ändern.
wird es wieder eine Endlosschleife sein :)
Ich denke, der Fehler liegt im Drucker selbst.
Finden Sie heraus, was in den Zeilen davor steht. da der letzte Exponent nicht ausgeführt werden soll. der Index überschreitet
Ich glaube, das Problem liegt in Ihrem Code.
und es sieht auch seltsam aus.
1071644672
Woher kommt sie?Ich habe es beigefügt, in dieser Form geht das Skript in eine Endlosschleife.
Ich habe Zero Devide mit oder ohne Druck, auf
Im Allgemeinen nimmt i1 einen falschen Wert an. Obwohl sie bei out[][][7] außerhalb des Bereichs liegen sollte. Der Compiler muss Einschränkungen berücksichtigen, die auf der Multiplikation aller Dimensionen beruhen (3 * 7 * 7 = 147) und nicht auf jeder einzelnen. Wenn i1 beispielsweise 8 zugewiesen wird, druckt Print trotzdem einige Werte. Offensichtlich handelt es sich um einen Compilerfehler bei der Überprüfung von Array-Grenzen.Offensichtlich berechnet der Compiler Beschränkungen, die sich aus der Multiplikation aller Dimensionen ergeben (3 * 7 * 7 = 147) und nicht aus jeder einzelnen. Wenn beispielsweise i1 die Zahl 8 zugewiesen wird, erzeugt Print dennoch einige Werte. Offensichtlich handelt es sich um einen Compilerfehler bei der Überprüfung von Array-Grenzen.
Die Bereichsüberschreitung stammt nicht vom Compiler. Dies ist ein Laufzeitfehler.
Das Laufzeitsystem hat dummerweise den Offset berechnet und es wird nichts passieren, wenn falsche Indizes in die Berechnung einbezogen wurden, aber Sie haben die Grenzen des Arrays nicht überschritten. Wenn Sie jedoch die Indizes auf intelligente Weise prüfen, und zwar jeden einzelnen, erhalten Sie konkrete Verzögerungen bei der Ausführung.