Fehler, Irrtümer, Fragen - Seite 716

 
MetaDriver:

Globale Variablen müssen auch nicht automatisch initialisiert werden. Wahrscheinlich haben Sie einfach nur "Glück". Glücklich in Anführungszeichen, denn ein solches Glück ist mit einem anschließenden Wahnsinn mit linken Behauptungen gegenüber den Entwicklern verbunden, wie z. B. "Gestern hat es funktioniert und heute nicht mehr. Ihre Plattform ist instabil...!".

Aus der Hilfe. Der Geltungsbereich globaler Variablen ist das gesamte Programm, globale Variablen sind von allen im Programm definierten Funktionen zugänglich. Sie werden mit Null initialisiert, sofern nicht ausdrücklich ein anderer Anfangswert angegeben wird.

Solche Fehler treten auf, wenn Sie versuchen, mit globalen Variablen zu arbeiten.

P.S. Du musst von dummen Fragen von Anfängern genervt sein, du schreibst wütend darüber ab. Es ist der Compiler, denke ich, kümmert sich nicht, was Code von Volumen, mehr Initialisierung nur verlangsamen sie für einen Bruchteil einer Sekunde, und der Tester von Strategien ist eine andere Sache.

Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
 
sion:

Aus der Hilfe. Der Geltungsbereich globaler Variablen ist das gesamte Programm, globale Variablen sind von allen im Programm definierten Funktionen zugänglich. Sie werden mit Null initialisiert, sofern nicht ausdrücklich ein anderer Anfangswert angegeben wird.

Es gibt auch einen Link unter Siehe auch unter Variableninitialisierung.

Jede Variable kann bei ihrer Definition initialisiert werden. Wenn die Variable nicht explizit initialisiert wird, kann der Wert, der in dieser Variable gespeichert wird, beliebig sein. Eine implizite Initialisierung wird nicht durchgeführt.

 

Wird mit Null initialisiert, sofern nicht ausdrücklich ein anderer Anfangswert angegeben wird.

Eine implizite Initialisierung wird nicht durchgeführt.

Ich weiß nicht, was ich glauben soll. Entweder werden sie mit Null initialisiert, wenn kein Wert explizit angegeben wird, oder es wird keine implizite Initialisierung durchgeführt. Oder etwas anderes im Allgemeinen)

 
sion:

Ich weiß nicht einmal, was ich glauben soll. Entweder wird er mit Null initialisiert, wenn kein Wert explizit gesetzt wird, oder er wird nicht implizit initialisiert. Oder ganz allgemein etwas anderes).

Sie können niemandem trauen. Sie können mir vertrauen.

Warum wird die Frage der Programmierkultur zu einer Glaubensfrage? Sie führen keine explizite Initialisierung durch? Glitches werden früher oder später zu Ihnen kommen (und nicht unbedingt in mt5)

 
stringo:

Sie können niemandem trauen. Ich kann (c) Müller

Warum wird die Frage der Programmierkultur zu einer Glaubensfrage? Sie führen keine explizite Initialisierung durch? Glitches werden früher oder später zu Ihnen kommen (und nicht unbedingt in mt5)

Verlassen wir uns auf unsere Intuition. Meine letzten Beiträge scheinen in Ordnung zu sein, Wasser ist nichts, worüber man reden muss.
 
sion:
Verlassen wir uns auf unsere Intuition. Sie können wahrscheinlich meine letzten Beiträge wischen, Wasser ist nichts, worüber man reden muss.

Warum sollte man sich in einer so heiklen Angelegenheit auf seine Intuition verlassen?

Initialisieren Sie einfach alle Ihre Variablen explizit. Die Frage der unnötigen Initialisierung ist in einigen Fällen nur für Fachleute relevant, die Taktzyklen ausquetschen, um Mikrosekunden zu sparen.

 

Gebäude 630

Die FunktionArrayResize() (ArraySetAsSeries()=true)löscht ein falsches Element, wenn das Array verkle inert wird.

Es löscht das Element mit dem Index 0, während es das letzteElement des Arrays sein sollte, d.h. mit dem Index (n-1), wobei n die Größe des Arrays ist.

Bei den Builds vom Herbst 2011 hat alles gut funktioniert.

 
MoneyJinn:

ArrayResize() Fehler beim Verringern der Arraygröße, wenn ArraySetAsSeries() = true.

Löscht das Element von der falschen Seite des Arrays.

Wollen Sie damit sagen, dass das "älteste Element des Arrays" (das ganz links) entfernt wird?
 

wörter=GetPointer(firstwords);
Print("next======",wörter.m_next!=NULL);
while(wörter.m_next!=NULL || wörter.length<pp){ wörter=GetPointer(wörter.m_next); }

beim Testen eines EA für ein hervorgehobenes Wort zeigt der Fehler einenungültigen Zeigerzugriff in "iTester 7.mq5" (161,16) anund bleibt dann stehen

Was ist der Trick dabei?

wenn Sie schreiben: while( firstwords.m_next!=NULL || curwords.length<pp){ curwords=GetPointer(curwords.m_next); } error moves invalid pointer access in 'iTester 7.mq5' (161,43 )

 

fellow:

Wo ist der Haken?


curwords = NULL