Domande da un "manichino" - pagina 124

 
MetaDriver:

Ok, vado. :) Sono anche fuori dal terminale.

Controllato elementare - cercando di usare ArrayResize(...)

A giudicare dalla frase "trying to use" molto probabilmente otterrete un errore di tipo "array is static". Bene, controlliamo.
 
MetaDriver:

È elementare cercare di usare ArrayResize(...)

taki un po' contorto) più semplice
 

Bene, ecco gli errori. Cittadini di Metaquotes, per favore fate attenzione!!!

   int j[1];
   Alert("Размер массива из одного элемента без списка инициализации = ", sizeof(j), "   Массив динамический? ", ArrayIsDynamic(j));

   int k[];
   Alert("Размер структуры для динамического массива = ", sizeof(k), "   Массив динамический? ",ArrayIsDynamic(k));
   
   int g[] = {0};
   Alert("Размер массива из одного элемента со списком инициализации = ", sizeof(g), "   Массив динамический? ",ArrayIsDynamic(g));
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).
Документация по MQL5: Основы языка / Операции и выражения / Другие операции
Документация по MQL5: Основы языка / Операции и выражения / Другие операции
  • www.mql5.com
Основы языка / Операции и выражения / Другие операции - Документация по MQL5
 
220Volt:
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 allo stesso tempo, ArrayIsDinamic() dice che l'array è statico?
 
MetaDriver:
E ArrayIsDinamic() dice che l'array è statico?

j - statico

k - dinamico

g - statico

 
220Volt:
....

g - statico

Terribile, scrivi a Sportlotto e io lo sosterrò.
 
220Volt:

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, l'errore è stato corretto.
 
mql5:
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?

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

O è completamente statico?
Statico, naturalmente.
 
Renat:
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.

Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.