Perguntas de um "boneco" - página 124

 
MetaDriver:

OK, estou de saída. :) Estou também fora do terminal.

Verificado elementar - tentando usar o ArrayResize(...)

A julgar pela frase "tentando usar", muito provavelmente obterá um erro do tipo "array is static". Bem, vamos verificar isso.
 
MetaDriver:

É elementar tentar usar o ArrayResize(...)

taki um pouco mais simples)
[Excluído]  

Bem, aqui estão os erros. Cidadãos de Metaquotes, por favor prestem atenção!!!

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

   int k[];
   Alert("Размер структуры для динамического массива = ", sizeof(k), "   Массив динамический? ",ArrayIsDynamic(k));
   
   int g[] = {0};
   Alert("Размер массива из одного элемента со списком инициализации = ", sizeof(g), "   Массив динамический? ",ArrayIsDynamic(g));
A essência do erro: quando uma lista de inicialização (int g[] = {0}; ) é utilizada para um array, a funçãosizeof(g) dá o tamanho de struct MqlArrayObject (criado para um array dinâmico).
Документация по MQL5: Основы языка / Операции и выражения / Другие операции
Документация по MQL5: Основы языка / Операции и выражения / Другие операции
  • www.mql5.com
Основы языка / Операции и выражения / Другие операции - Документация по MQL5
 
220Volt:
A essência do erro: quando uma lista de inicialização (int g[] = {0}; ) é utilizada para um array, a funçãosizeof(g) imprime o tamanho da estrutura MqlArrayObject (criada para um array dinâmico).
E ao mesmo tempo, ArrayIsDinamic() diz que a matriz é estática?
[Excluído]  
MetaDriver:
E o ArrayIsDinamic() diz que a matriz é estática?

j - estática

k - dinâmico

g - estático

 
220Volt:
....

g - estático

Terrível. Escreva ao Sportlotto, eu apoio.
 
220Volt:

Bem, aqui estão os erros. Cidadãos das Metacidades, por favor prestem atenção!!!

A essência do erro: quando uma lista de inicialização (int g[] = {0}; ) é utilizada para um array, a funçãosizeof(g) dá o tamanho de struct MqlArrayObject (criado para array dinâmico).

Obrigado pela mensagem, o erro foi corrigido.
 
mql5:
Obrigado pela mensagem, erro corrigido.

Ilyas!!! Esperem um minuto!!!

Como foi fixado exactamente? As matrizes que foram analisadas na declaração tornaram-se dinâmicas (redimensionáveis)?

Ou completamente estático?

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

Ou é completamente estático?
Estático, é claro.
 
Renat:
É claro, é um código estático.

Oh, agora vejo.

Renat, tenho uma sugestão há muito tempo, apenas sobre o assunto. Por favor, faça uma dactilografia nomeada para arrays, pelo menos para arrays estáticos (todos os outros tipos já a têm).

Ou seja, pode declarar, por exemplo: typedef Int8 = int[8];.

O preço da pergunta é a possibilidade de passar conjuntos unidimensionais (2, 3-dimensionais), que são subarrays em conjuntos de maiores dimensões, para funções.

Isto é, se declarar mais : Int8 arr[...], então pode passar arr[i] para a função func(Int8 &a) {...}.

Actualmente, tenho de realizar muitas acções extra em mql5 e escrever muito código feio devido à impossibilidade de passar subarrays em funções.

Eu não escrevo em servicedesk, porque o tema me parece discutível.

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