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

 
Ilyas:

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

  1. На одном компьютере работает, на другом нет
  2. В терминале работает, в тестере нет
  3. После обновления терминала/ОС программа стала вести себя по другому
  4. Добавил Print перестало работать
  5. и т.д.

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

Спасибо за разъяснения и совет.

 
Ilyas:

ArrayResize не занимается зачисткой памяти, поэтому в ней и содержится мусор, от предыдущего "потребителя".

Это сделано для скорости, т.к. после выделения памяти массиву, в 99.99(9)% случаях пользователь будет "наполнять" её своими данными.


не правильное объяснение из-за чего у новичков могут возникнуть проблемы, в справке по ArrayResize  есть правильное объяснение

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

ps. вообще реализация массивов в MQL5 хуже чем чем в С++ так же как и структур, если с последними еще как то можно в большинстве случаем мириться, то из-за моссивов приходится писать врапперы

в простых программах реализация массивов удачная, в сложных становится определенной проблемой

 
Artyom Trishkin:

Что значит "нет" ? Никто у вас планку памяти не вынимает из слота в материнской плате. А раз память присутствует, и она освобождена (не инициализирована значением, а именно освобождена), то она начинает использоваться под иные нужды программы.

Память, это сохраненная информация, а не носитель информации, которым является планка ОЗУ.

Я не знал, что память не забивается нулями, а лишь освобождаются/выделяются адреса для её хранения и нужно самому организовывать зачистку.

Спасибо.
 

Давно заметил, что криво работает поиск брокеров/торговых серверов при открытии демо-счета через Терминал.

Ввожу название брокера и ничего не получаю


Только если ввести полное имя торгового сервера, получается нужный результат


 

Установка МТ5 1882, файл скачен с сайта (https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.mql5.com&utm_campaign=download). 
UAC включен, ошибка возникает до предоставления админ прав.
Запуск от админа проблемы не решает, только скрывает окно с сообщением об наличии ошибки.




 

Подскажите кто сталкивался. билд 1881 мт5. Запускаю обычную оптимизацию. По результату повторно оптимизация запускается, но локальные агенты не запускаются - только коннект и отключение. В логах агентов ничего.

Помогает только перезапуск мт

 

В этом же билде столкнулся с проблемой. Мт не захотел как раньше дописывать в конец файла - всегда его перетирает

int f = FileOpen(file,FILE_COMMON|FILE_READ|FILE_WRITE|FILE_TXT);

 

2018.07.26 19:23:56.269    Core 01    tester agent authorization error

Как это )) ? и что делать?

 
Anton Ohmat:

2018.07.26 19:23:56.269    Core 01    tester agent authorization error

Как это )) ? и что делать?

В лучшем случае - окно визуализатора не закрыто. В худшем - древняя известная проблема.

 
Anton Ohmat:

В этом же билде столкнулся с проблемой. Мт не захотел как раньше дописывать в конец файла - всегда его перетирает

int f = FileOpen(file,FILE_COMMON|FILE_READ|FILE_WRITE|FILE_TXT);

Перед записью файла выполняете FileSeek на конец файла?

Причина обращения: