错误、漏洞、问题 - 页 716

 
MetaDriver:

全局变量也不一定要自动初始化。你可能只是 "幸运"。幸运的引号,因为这种幸运充满了随后对开发者的左翼主张的疯狂,比如 "昨天还能用,今天就不行了,你的平台不稳定......"。

来自帮助。全局变量的范围 是整个程序,全局变量可以从程序中定义的所有函数访问。它们被初始化为零,除非明确指定另一个初始值。

在你试图处理全局变量之后,就会发生这样的错误。

P.S. 你一定是被初学者的愚蠢问题弄得饥肠辘辘了,你愤怒地写下这个问题。我认为,编译器并不关心什么代码量,更多的初始化只是让它慢了几分之一秒,而测试者的策略则是另一回事。

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

来自帮助。全局变量的范围 是整个程序,全局变量可以从程序中定义的所有函数访问。它们被初始化为零,除非明确指定另一个初始值。

下面还有一个链接也请看 变量初始化

任何变量在定义时都可以被初始化。如果该变量没有被明确初始化,存储在该变量中的值可以是任何东西。 不进行隐式初始化。

 

初始化为零,除非明确指定其他初始值。

不进行隐式初始化。

我不知道该相信什么。如果没有明确指定数值,它们要么被初始化为零,要么不进行隐式初始化。或其他一般的东西)

 
sion:

我甚至不知道该相信什么。如果没有明确设置数值,它就被初始化为0,或者它没有被隐式初始化。或其他一般的东西)。

你不能相信任何人。你可以相信我。

为什么要把编程文化的问题变成一个信仰问题?你不做显式初始化?缺陷迟早会找上你(不一定是在mt5中)。

 
stringo:

你不能相信任何人。我可以 (c) Müller

为什么要把编程文化的问题变成一个信仰问题?你不做显式初始化?缺陷迟早会找上你(不一定是在mt5中)。

让我们依靠直觉。我最后的帖子似乎都可以擦掉了,水是没什么好说的。
 
sion:
让我们依靠直觉。你也许可以擦掉我最后的帖子,没有什么可谈的。

为什么在如此微妙的问题上要依靠直觉?

只要明确地初始化你的所有变量。在某些情况下,不必要的初始化问题只与那些挤压时钟周期以节省微秒的专业人士有关。

 

建立630

ArrayResize()函数ArraySetAsSeries()=true在数组大小减少时删除了一个错误的项目

它删除了索引为0的项目,而它应该是数组的 最后一个项目,即索引为(n-1),其中n是数组的大小。

在2011年秋季的构建中,一切工作正常。

 
MoneyJinn:

当ArraySetAsSeries()=true时,减少数组大小时ArrayResize()出错。

从数组的错误一侧删除元素。

你是说 "数组中最老的元素"(最左边的那个)被移除?
 

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

当测试一个突出显示的字的EA时,在'iTester 7.mq5'(161,16)中 错误指示无效的 指针 访问,然后停止。

这里有什么诀窍?

如果你写。while(firstwords.m_next!=NULL ||curwords.length<pp){ curwords=GetPointer(curwords.m_next); }在'iTester 7.mq5'中 错误地移动了无效的指针访问(161,43)。

 

fellow:

有什么好处?


curwords = NULL