Errori, bug, domande - pagina 716

 
MetaDriver:

Anche le variabili globali non devono essere inizializzate automaticamente. Probabilmente sei solo "fortunato". Fortunato tra virgolette, perché tale fortuna è gravida di successive manie di protagonismo nei confronti degli sviluppatori, come "ieri funzionava e oggi no. La vostra piattaforma è instabile...!".

Dalla guida. Lo scopo delle variabili globali è l'intero programma, le variabili globali sono accessibili da tutte le funzioni definite nel programma. Sono inizializzati con zero, a meno che non sia specificato esplicitamente un altro valore iniziale.

Tali errori si verificano dopo che si cerca di gestire le variabili globali.

P.S. Devi avere un certo languorino per le domande stupide dei principianti, scrivi furiosamente su questo. È il compilatore, penso, non importa quale codice per volume, più inizializzazione solo rallentare per una frazione di secondo, e il tester di strategie è un'altra questione.

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

Dalla guida. Lo scopo delle variabili globali è l'intero programma, le variabili globali sono accessibili da tutte le funzioni definite nel programma. Sono inizializzati con zero, a meno che non sia specificato esplicitamente un altro valore iniziale.

C'è anche un link qui sotto Vedi anche sull'inizializzazione delle variabili.

Qualsiasi variabile può essere inizializzata quando viene definita. Se la variabile non è esplicitamente inizializzata, il valore memorizzato in questa variabile può essere qualsiasi cosa. L'inizializzazione implicita non viene eseguita.

 

Inizializzato con zero, a meno che un altro valore iniziale sia esplicitamente specificato.

L'inizializzazione implicita non viene eseguita.

Non so cosa credere. O sono inizializzati con zero se nessun valore è specificato esplicitamente o l'inizializzazione implicita non viene eseguita. O qualcos'altro in generale)

 
sion:

Non so nemmeno cosa credere. O è inizializzato con zero se nessun valore è impostato esplicitamente, o non è inizializzato implicitamente. O qualcos'altro in generale).

Non ci si può fidare di nessuno. Potete fidarvi di me.

Perché trasformare la questione della cultura della programmazione in una questione di fede? Non fate un'inizializzazione esplicita? I glitch arriveranno prima o poi (e non necessariamente in mt5)

 
stringo:

Non ci si può fidare di nessuno. Posso (c) Müller

Perché trasformare la questione della cultura della programmazione in una questione di fede? Non fate un'inizializzazione esplicita? I glitch arriveranno prima o poi (e non necessariamente in mt5)

Affidiamoci all'intuizione. I miei ultimi post sembrano andare bene per pulire, l'acqua non è niente di cui parlare.
 
sion:
Affidiamoci all'intuizione. Probabilmente puoi cancellare i miei ultimi post, l'acqua non è niente di cui parlare.

Perché affidarsi all'intuizione in una questione così delicata?

Semplicemente inizializzate tutte le vostre variabili in modo esplicito. La questione dell'inizializzazione non necessaria in alcuni casi è rilevante solo per i professionisti che spremono i cicli di clock per risparmiare microsecondi.

 

costruire 630

La funzioneArrayResize() (ArraySetAsSeries()=true)elimina un elemento sbagliato quando la dimensione dell'array viene ridotta.

Cancella l'elemento con indice 0, mentre dovrebbe essere l'ultimoelemento dell'array, cioè con indice (n-1) dove n è la dimensione dell'array.

Tutto ha funzionato bene nelle build dell'autunno 2011.

 
MoneyJinn:

Errore di ArrayResize() quando si diminuisce la dimensione dell'array quando ArraySetAsSeries() = true.

Cancella l'elemento dal lato sbagliato della matrice.

Stai dicendo che "l'elemento più vecchio dell'array" (quello più a sinistra) viene rimosso?
 

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

quando si testa un EA per una parola evidenziata, l'errore indica unaccesso al puntatore non valido in 'iTester 7.mq5' (161,16) e poi si ferma

qual è il trucco qui?

se scrivi: while( firstwords.m_next!=NULL || curwords.length<pp){ curwords=GetPointer(curwords.m_next); } l'errore sposta l'accesso al puntatore non valido in 'iTester 7.mq5' (161,43 )

 

fellow:

qual è la fregatura?


curwords = NULL