Вопросы от "чайника" - страница 124

 
MetaDriver:

Ладно, отмазался. :)  Я тоже вне терминала.

Проверяется элементарно - попыткой использования ArrayResize(...)

Судя по фразе "попытка использования" - скорее всего, будет выдана ошибка типа array is static. Ну что ж, проверим.
 
MetaDriver:

Проверяется элементарно - попыткой использования ArrayResize(...)

таки несколько извилисто) проще
 

Ну вот и ошибочки. Граждане Метаквоты, обратите пожалуйста внимание !!!

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

   int k[];
   Alert("Размер структуры для динамического массива = ", sizeof(k), "   Массив динамический? ",ArrayIsDynamic(k));
   
   int g[] = {0};
   Alert("Размер массива из одного элемента со списком инициализации = ", sizeof(g), "   Массив динамический? ",ArrayIsDynamic(g));
Суть ошибки: когда для массива используется список инициализации ( int g[] = {0};  ), функция  sizeof(g) выдаетс размер структуры struct MqlArrayObject (создается для динамического массива). 
Документация по MQL5: Основы языка / Операции и выражения / Другие операции
Документация по MQL5: Основы языка / Операции и выражения / Другие операции
  • www.mql5.com
Основы языка / Операции и выражения / Другие операции - Документация по MQL5
 
220Volt:
Суть ошибки: когда для массива используется список инициализации ( int g[] = {0};  ), функция  sizeof(g) выдаетс размер структуры struct MqlArrayObject (создается для динамического массива). 
И при этом ArrayIsDinamic() говорит что массив статический?  // на нэт и суда нэт
 
MetaDriver:
И при этом ArrayIsDinamic() говорит что массив статический?  // на нэт и суда нэт

j - статический

k - динамический

g - статический 

 
220Volt:
....

g - статический 

Ужас.  Пиши в Спортлото.  Я поддержу.
 
220Volt:

Ну вот и ошибочки. Граждане Метаквоты, обратите пожалуйста внимание !!!

Суть ошибки: когда для массива используется список инициализации ( int g[] = {0};  ), функция  sizeof(g) выдаетс размер структуры struct MqlArrayObject (создается для динамического массива). 

 

Спасибо за сообщение, ошибка исправлена.
 
mql5:
Спасибо за сообщение, ошибка исправлена.

Ильяс!! Погодите!!

Как именно исправлена?  Проиницализированные при объявлении массивы стали таки динамическими (с возможностью изменения размера)?

Или таки полностью статическими?

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

Или таки полностью статическими?
Конечно статическим.
 
Renat:
Конечно статическим.

О, теперь понятно.

Ренат, у меня давно предложение зреет, как раз в тему.  Сделайте пожалуйста именованную типизацию для массивов, хотя бы статических (для всех остальных типов она уже есть).

Т.е возможность объявить например: typedef Int8 = int[8];

Цена вопроса - возможность передавать в функции одномерные (2,3-мерные) массивы, являющиеся подмассивами в массивах большей размерности.

Т.е. если объявить в дальнейшем :  Int8  arr[..], чтоб можно было в функцию func(Int8 &a) {...} передать arr[i].

Сейчас в mql5 приходится множество лишних движений совершать и писать кривой код из-за невозможности передавать в функции подмассивы.

Не пишу в сервисдеск, поскольку тема мне кажется дискуссионной.

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