![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Ok, vado. :) Sono anche fuori dal terminale.
Controllato elementare - cercando di usare ArrayResize(...)
È elementare cercare di usare ArrayResize(...)
Bene, ecco gli errori. Cittadini di Metaquotes, per favore fate attenzione!!!
L'essenza dell'errore: quando una lista di inizializzazione (int g[] = {0}; ) è usata per un array, la funzionesizeof(g) dà la dimensione della struct MqlArrayObject (creata per un array dinamico).L'essenza dell'errore: quando una lista di inizializzazione (int g[] = {0}; ) è usata per un array, la funzionesizeof(g) stampa la dimensione della struct MqlArrayObject (creata per un array dinamico).
E ArrayIsDinamic() dice che l'array è statico?
j - statico
k - dinamico
g - statico
....
g - statico
Bene, ecco gli errori. Cittadini delle Metacities, per favore prestate attenzione!!!
L'essenza dell'errore: quando una lista di inizializzazione (int g[] = {0}; ) è usata per un array, la funzionesizeof(g) dà la dimensione della struct MqlArrayObject (creata per l'array dinamico).Grazie per il messaggio, errore corretto.
Ilyas!!! Aspetta un attimo!!!
Come è stato risolto esattamente? Gli array che sono stati analizzati nella dichiarazione sono diventati dinamici (ridimensionabili)?
O completamente statico?
O è completamente statico?
Naturalmente, è un codice statico.
Oh, ora capisco.
Renat, ho un suggerimento da molto tempo, proprio sull'argomento. Per favore, fai un named typing per gli array, almeno per quelli statici (tutti gli altri tipi lo hanno già).
Cioè, potete dichiarare per esempio: typedef Int8 = int[8];.
Il prezzo della domanda è la possibilità di passare array monodimensionali (2, 3 dimensioni), che sono subarray in array di dimensioni maggiori, nelle funzioni.
Cioè se dichiarate ulteriormente : Int8 arr[...], allora potete passare arr[i] nella funzione func(Int8 &a) {...}.
Attualmente, devo eseguire un sacco di azioni extra in mql5 e scrivere un sacco di codice brutto a causa dell'impossibilità di passare subarray nelle funzioni.
Non scrivo in servicedesk, perché l'argomento mi sembra discutibile.