Скачать MetaTrader 5

Объявление массива global initialization failed Invalid

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
IGHud
74
IGHud  
При Объявление массива типа: double aa[400][400][10]; Терминал может в закладке Эксперты выдать "global initialization failed Invalid" . При чем в трех похожих кодах, терминал реагировал по разному, выдавал ошибку и удалял индикатор, при разных размерах первых индексов.  Выше. aa[400][400][10] aa[911][911][10] в одном случае код выполняется при aa[1000][1000][10].  Числа были найдены методом ТК (проб и ошибок). Сложилось впечатления что эти числа в принципе случайные. Индикатор может работать до какого то момента усложнения кода, затем все обрывается. При этом принципиальной зависимости от сложности  кода не обнаруживается. Проблему нашел самостоятельно. Сообщение больше как информация для разработчиков.   
IGHud
74
IGHud  
Еще раз доброго времени суток. Фразу "global initialization failed Invalid" по ошибке дополнил словом Invalid. На самом деле. Терминал в закладке Эксперты пишет только "global initialization failed" 
atztek
279
atztek  
i592958:
Еще раз доброго времени суток. Фразу "global initialization failed Invalid" по ошибке дополнил словом Invalid. На самом деле. Терминал в закладке Эксперты пишет только "global initialization failed" 
Я абсолютно не уверен в том тот ли это случай, но недавно у меня было что-то похожее, когда я использовал массив, который нигде не был определен. Проверьте, возможно Вы его определяете в неправильной части кода? Если не поможет то сделайте копию и в ней начните удалять все нерелевантное чтобы упростить код до минимума, тогда уж точно разберетесь.
IGHud
74
IGHud  
atztek:
Я абсолютно не уверен в том тот ли это случай, но недавно у меня было что-то похожее, когда я использовал массив, который нигде не был определен. Проверьте, возможно Вы его определяете в неправильной части кода? Если не поможет то сделайте копию и в ней начните удалять все нерелевантное чтобы упростить код до минимума, тогда уж точно разберетесь.

Массивы определенны  перед int init() (MT4)  в новой версии языка это вроде  void OnInit().  посмотрел в программах поставляемых с редактором МТ4 там массивы определяются в том же месте перед void OnInit(). Только без определения предельных размеров массивов. но вроде правильней определять размеры. Ошибку нашел как раз копированием, исключениями и т.д. примерно день потратил. 

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий