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
Benötigt, um die Größe eines variablen Arrays zu bestimmen, aber der Fehler kommt heraus:
//---
//---
Es funktioniert direkt mit Konstanten (#define) und mit einem numerischen Wert, aber nicht auf diese Weise. Warum?
Benötigt, um die Größe eines variablen Arrays zu bestimmen, aber der Fehler kommt heraus:
//---
//---
Es funktioniert direkt mit Konstanten (#define) und mit einem numerischen Wert, aber nicht auf diese Weise. Warum?
tol64:
Und warum?
Mit Konstanten (#define) und mit einem numerischen Wert funktioniert es direkt, aber nicht so. Warum?
Denn bei der Definition mit #define ersetzt der Compiler das vorgefundene Makro vor der Kompilierung einfach durch den richtigen Eintrag. Daher sieht sie
die nicht im Widerspruch zur MQL5-Sprache steht.
GUT. Dann werde ich die Nerven behalten. So heißt es in der Beschreibung der Funktion Print(), dass "Daten vom Typ double mit einer Genauigkeit von 16 Dezimalstellen nach dem Komma gedruckt werden". Es stellt sich nämlich heraus, dass die Funktion Print() etwas gerundete Daten ausgibt:
MP 0 victorg2 (EURUSD,M1) 11:04:42 Print(DoubleToString(b,16))=199.999999999999999716
Es geht darum, dass eine reelle Zahl mit nicht mehr als 17 signifikanten Ziffern im Speicher abgelegt wird.
Probieren Sie dieses Beispiel aus, um den Unterschied zu spüren:
Die Beschreibung in der Hilfe wird korrigiert werden.Bei Konstanten handelt es sich um ein statisches Array, bei einer Variablen um ein dynamisches. Und die Größe eines dynamischen wird mit ArrayResize bestimmt.
Die zweite und die folgenden Dimensionen haben eine feste Größe. Sie kann nur durch eine Konstante festgelegt werden.
Denn wenn sie mit #define definiert sind, ersetzt der Compiler vor der Kompilierung einfach das angetroffene Makro durch den richtigen Eintrag. Daher sieht sie
die nicht im Widerspruch zur MQL5-Sprache steht.
Ich danke Ihnen. Können Sie mir sagen, was man tun kann, wenn die Größe eines Arrays sowohl in der ersten als auch in der zweiten Dimension durch Berechnungen bestimmt wird und keine Konstante sein kann? Mit ArrayResize() können Sie nur die Größe der ersten Dimension ändern. Und warum kann man die Größe eines Arrays mit Hilfe einer Variablen ändern, während sie anfangs nicht festgelegt werden kann?
Ich danke Ihnen. Können Sie mir sagen, was man tun kann, wenn die Größe eines Arrays sowohl in der ersten als auch in der zweiten Dimension durch Berechnungen bestimmt wird und keine Konstante sein kann? Mit ArrayResize() können Sie nur die Größe der ersten Dimension ändern. Und warum kann ich die Größe eines Arrays ändern, indem ich einen variablen Wert anwende, während er anfangs nicht festgelegt werden kann?