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

 
MetaDriver:

Глобальные переменные тоже не обязаны инициализироваться автоматически. Вам, вероятно, просто "повезло". Повезло в кавычках, потому что такое везение чревато последующим съездом крыши с левыми претензиями к разработчикам, типа "вчера работало, а сегодня уже нет. да у вас платформа неустойчивая..!!"

Из справки. Область видимости глобальных переменных - вся программа, глобальные переменные доступны из всех функций, определенных в программе. Инициализируются нулем, если явно не задано другое начальное значение.

После опыта работы с глобальными переменными и появляются такие ошибки.

P.S. Видимо у Вас накипело, от глупых вопросов начинающих, так яростно по этому поводу отписываете.  Именно компилятору, помоему пофигу, какой по объему код, лишняя инициализации лишь на долю секунды притормозит его, а на тестере стратегий уже другое дело.

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

Из справки. Область видимости глобальных переменных - вся программа, глобальные переменные доступны из всех функций, определенных в программе. Инициализируются нулем, если явно не задано другое начальное значение.

Там же ниже есть ссылка См. также на Инициализация переменных

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

 

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

Неявная инициализация не производится.

 

Даже не знаю чему верить. Толь инициализируется нулем, если явно не задано значение, толь неявная  инициализация не производится. Толь вообще что-то третье) 

 
sion:

Даже не знаю чему верить. Толь инициализируется нулем, если явно не задано значение, толь неявная  инициализация не производится. Толь вообще что-то третье) 

Никому нельзя верить. Мне - можно (ц) Мюллер

Зачем вопрос культуры программирования превращать в вопрос веры? Вы не делаете явной инициализации? Глюки рано или поздно придут к Вам (и необязательно в mt5)

 
stringo:

Никому нельзя верить. Мне - можно (ц) Мюллер

Зачем вопрос культуры программирования превращать в вопрос веры? Вы не делаете явной инициализации? Глюки рано или поздно придут к Вам (и необязательно в mt5)

Будем полагаться на интуицию. Последние мои посты видимо подтирать можно, вода не о чем. 
 
sion:
Будем полагаться на интуицию. Последние мои посты видимо подтирать можно, вода не о чем. 

Зачем полагаться на интуицию в таком тонком вопросе?

Просто инициализируйте явно все свои переменные. Вопрос ненужности инициализации в каких-то случаях актуален только для профессионалов, выжимающих такты ради экономии микросекунд.

 

build 630

Функция ArrayResize() (ArraySetAsSeries()=true) при уменьшении размера массива удаляет не тот элемент.  

Удаляется элемент с индексом 0, а должен удаляться самый последний элемент массива, то есть с индексом (n-1), где n - размер массива.

В осенних билдах 2011 года все работало нормально.

 
MoneyJinn:

Ошибка ArrayResize() при уменьшении размера массива, когда ArraySetAsSeries() = true. 

Удаляется элемент не с той стороны массива.  

Хотите сказать, что удаляется "самый старый элемент  массива" (самый левый)?
 

curwords=GetPointer(firstwords);
Print("next======",curwords.m_next!=NULL);
while(curwords.m_next!=NULL || curwords.length<pp){ curwords=GetPointer(curwords.m_next); }

 

при тесте советниа на выделенное слово указывает ошибка invalid pointer access in 'iTester  7.mq5' (161,16) и дальше останавливается

в чём тут прикол? 

если написать:      while( firstwords.m_next!=NULL || curwords.length<pp){ curwords=GetPointer(curwords.m_next); }          то ошибка передвигается     invalid pointer access in 'iTester  7.mq5' (161,43)

 

fellow:

в чём тут прикол? 


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