Ошибки, баги, вопросы - страница 3012

 
Andrei Trukhanovich:

справка не согласна с такой трактовкой.

Справка написана для mql, а mql написан на сях ))
Зная основы си, будет понятно что к чему. 

 
Roman:
Я думаю все проще - вы не поняли что написано в справке
 
Andrei Trukhanovich:
Я думаю все проще - вы не поняли что написано в справке

По большому счёту, она не корректна!

 
Roman:

По большому счёту, она не корректна!

тут спорить не буду

 
Roman:

Справка написана для mql, а mql написан на сях ))
Зная основы си, будет понятно что к чему. 

В Си размеры массива и строки заранее неизвестны, а MQL известны - это существенное отличие - поэтому в MQL не нужны избыточные параметры их дублирующие 

 
A100:

В Си размеры массива и строки заранее неизвестны, а MQL известны - это существенное отличие - поэтому в MQL не нужны избыточные параметры их дублирующие 

Динамический массив, на то и динамический, что он ожидает от пользователя получить любой размер.
Чтобы динамический массив понял что от него хотят, программист должен ему сказать:

-Эй, динамический массив, я хочу передать тебе данные.
а он тебе в ответ:
-А какого типа, и какого размера твои данные?
ты ему:
-Вот, char 100 элементов
он в ответ:
-Хорошо, если я того же типа, выдели мне память, в 100 байт под эти элементы и тогда отправляй. Иначе не приму.

;))

Но вам упростили жизнь, указав даже ноль в параметре, автоматизация процесса сама рассчитает размер передаваемых данных.
Так сказать дополнительная защита от новичков. Но лучше явно передавать размер, чтоб его самому контролировать, иначе замучаешься потом дебажить.
 
Roman:

Динамический массив, на то и динамический, что он ожидает от пользователя получить любой размер.
Чтобы динамический массив понял что от него хотят, программист должен ему сказать:

-Эй, динамический массив, я хочу передать тебе данные.
а он тебе в ответ:
-А какого размера твои данные?
ты ему:
-Вот, 100
он в ответ:
-Хорошо, выдели мне память, под 100 элементов, и тогда отправляй. Иначе не приму.

;))

Но вам упростили жизнь, указав даже ноль в параметре, автоматизация процесса сама рассчитает размер передаваемых данных.
Так сказать дополнительная защита от новичков. Но лучше явно передавать размер, чтоб его самому контролировать, иначе замучаешься потом дебажить.

если честно это жесть в критических случаях для массива. что мы и видим в виде выхода за размер динамического массива.... хотя в обычных условиях удобно...

 
Valeriy Yastremskiy:

если честно это жесть в критических случаях для массива. что мы и видим в виде выхода за размер динамического массива.... хотя в обычных условиях удобно...

Выход за пределы массива, это уровень программиста ))

 
Roman:

Вход за пределы массива, это уровень программиста ))

обычная ситуация при не полном загрузе истории баров. классика проверки на загруз истории на ширину окна тоже не всегда актуален. 

и это не всегда уровень алгоритмиста, особенно если ситуация малочастотная. 

 
Valeriy Yastremskiy:

обычная ситуация при не полном загрузе истории баров. классика проверки на загруз истории на ширину окна тоже не всегда актуален. 

и это не всегда уровень алгоритмиста, особенно если ситуация малочастотная. 


А это не поможет?  Организация доступа к данным 
Только это уже касается особенности платформы MT5, а не основ языка.
Если это не поможет, то тогда вероятно надо сообщить разработчикам.

Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
  • www.mql5.com
Организация доступа к данным - Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Причина обращения: