在MT5中强制清算阵列? - 页 2 1234567 新评论 Aleksey Semenov 2019.03.03 22:40 #11 Artyom Trishkin:你当然会这样做。 任何尊重自己和自己的程序的程序员都不会让事情发展到这个地步。在MQL4中,如果你不使用#property strict,你可以通过索引20来引用一个大小为10的数组。而什么也不会发生--程序将继续工作,但要由程序员决定下一步使用什么。如果他很聪明,他肯定会检查和控制一切,以免得到数组 以外的值,但如果他 "粗略 "地做,他就不会去管这种控制,而且 "主要的是它能工作,但它会以某种方式如何..."。 大多数用户,没有理会这一点,一直在抱怨 "糟糕、邪恶和复杂的MQL5",因为它不允许他们像以前一样伪造自己的创作。但是,那些最初认为并创建了具有检查和控制接收数据的代码的人,没有注意到语言的复杂性有什么不同,现在想知道--"复杂性在哪里--是一样的......"。 代码已经表明,允许在没有#属性严格的情况下除以0,而且地球没有塌陷成黑洞,但有时人们想除以0,但他们不让人这样做。 Nikolai Semko 2019.03.03 23:26 #12 Алексей Тарабанов:尼古拉,不要担心MQL4,那里一切都很好。题主随心所欲地填入数组。一切都是。 阿尔乔姆-特里什金。你当然会这样做。 任何一个尊重自己和自己的程序的程序员,都不会让事情发生。在MQL4中,如果你不使用#property strict,你可以通过索引20来引用一个大小为10的数组。而什么也不会发生--程序将继续工作,但要由程序员决定下一步使用什么。如果他很聪明,他肯定会检查和控制一切,以免得到数组 以外的值,但如果他 "粗略 "地做,他就不关心这种控制,"主要是它的工作,以及如何--莫名其妙地--"。 大多数用户,没有理会这一点,一直在抱怨 "糟糕、邪恶和复杂的MQL5",因为它不允许他们像以前一样伪造自己的创作。但是,那些最初认为并创建了带有检查和控制接收数据的代码的人,并没有注意到语言的复杂性有什么不同,现在他们想知道--"复杂性在哪里--它是一样的......"。 遗憾的是! 好吧,Petr,由于MQL5的严格性,你有机会把代码放在相对的顺序中,并清除垃圾堆。 你甚至可以尝试用#property strict编译固定的代码回到MQL4,也许它在MT4上的运行速度会更快。 Реter Konow 2019.03.04 10:17 #13 Nikolai Semko: 遗憾的是! 好吧,彼得,由于MQL5的严格性,我们有机会把代码放在相对的位置,并清理垃圾 堆。 你甚至可以尝试在MQL4中用#property strict来编译固定的代码,也许,在MT4中的工作速度会快很多。这就是你如何先验地认定我的代码充满了垃圾的原因。 让我解释一下:内核是分阶段填充的,分几个步骤。如果在MT5中声明数组时,其中有垃圾(我不知道),那么在函数中建立内核的第一步,数组就超出了范围,因为我不是用指针指向变量,而是通过另一个内核单元来参考。如果它包含零,那就没问题,在第二次运行中会得到正确的值,但如果它包含垃圾,就会出现严重错误。 这一点你清楚吗? Реter Konow 2019.03.04 10:22 #14 Nikolai Semko: 彼得,我不知道你是什么意思。...确切地说,你不明白。你把我的任务与你自己的任务相比较...... Реter Konow 2019.03.04 10:28 #15 ...如果你有溢出的情况发生,请寻找自己身上的错误。如果有垃圾,那是你的垃圾,你没有清理。我没有任何溢出的情况。考虑一下我的技术的具体情况(忘了你在忽略它)。如果你用数组中的另一个单元格作为一个单元格的指针,而其中有垃圾,那么你就出了数组。问题是,为了让你通过引用的单元格得到正确的值,你必须进入第二轮的内核构建。而在第二轮,价值将是正确的。但你不会因为一个关键的错误 而进入第二轮。 所有这些都是由于数组中的垃圾被声明。 因此,我们需要发明一些机制,在第一次设置大小(建立常规区域)的阶段和第二次调整内核大小(建立用户区域)的阶段清除二维数组(内核)。 Vitaly Muzichenko 2019.03.04 10:29 #16 Реter Konow:确切地说,你不明白。相比之下,我的任务和你自己的...继续创作独白--再连发10个帖子。 Alexey Viktorov 2019.03.04 10:57 #17 Реter Konow:这就是你如何先验地认定我的代码充满了垃圾的原因。 让我解释一下:内核是分阶段填充的,分几个步骤。如果在MT5中声明数组时,其中有垃圾(我不知道),那么在函数中建立内核的第一步,数组就超出了范围,因为我不是用指针指向变量,而是通过另一个内核单元来参考。如果它包含零,那就没问题,在第二次运行中会得到正确的值,但如果它包含垃圾,就会出现严重错误。 这一点你清楚吗?根本 不是这样的。这不是垃圾的问题,而是在mql4中没有#property strict。没有它,你会得到0而不是数组超限,在mql5中这已经是一个关键错误。也许,最好是检查数组的长度,而不是检查不存在的数组索引的内容。 Реter Konow 2019.03.04 11:47 #18 Alexey Viktorov:Retag 根本不是这样的。这不是垃圾的问题,是mql4中缺乏#属性严格。如果没有这个噱头,你会得到0,而不是数组超限,在mql5中已经是关键错误。也许,最好是检查数组的长度,而不是检查不存在的数组索引的内容。发生出界是因为指示 单元中存在垃圾。 比如说。 G_CORE[Объект][Канвас] = G_CORE[Окно][Его_канвас]; 最初。 G_CORE[Object][Kanvas] = -123423452345; (rubbish) G_CORE[Window][His_canvas]= -452345; (rubbish) //----------------------------------------------------------------- 结果超出了阵列。 要重申的是。有些单元格在MT4中的数值为零,在第一阶段的核心填充中,第二轮被填充。 在MT5中,由于单元格中的垃圾,第一轮就出现了关键错误。 如果数组中的单元格是零,就不会有错误,内核会按顺序填充(因为它应该这样)。 Реter Konow 2019.03.04 11:51 #19 这里有一个更准确的例子。第一轮的内核建设。在其中一项职能中。 int Ширина_канваса = G_CORE[G_CORE[Окно][Его_канвас]][_X_SIZE]; Если G_CORE[Окно][Его_канвас] = 234523452345; (мусор) то ошибка. А если бы G_CORE[Окно][Его_канвас] = 0; Ошибки нет, и ядро продолжает нормально строится. Vladimir Karputov 2019.03.04 11:54 #20 Реter Konow:发生出界是因为指示 单元中存在垃圾。 比如说。 最初。 G_CORE[Object][Kanvas] = -123423452345; (rubbish) G_CORE[Window][His_canvas]= -452345; (rubbish) //----------------------------------------------------------------- 结果超出了阵列。 要重申的是。有些单元格在MT4中的数值为零,在第一轮填芯阶段的第二轮中被填入。 在MT5中,由于单元格中的垃圾,第一轮就出现了关键错误。 如果数组单元中存在零,就不会有错误,内核将被按顺序填充(应该如此)。数组不初始化完全是kodopistael的错。在你自己的环境中寻找错误。重建你的算法。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你当然会这样做。
任何尊重自己和自己的程序的程序员都不会让事情发展到这个地步。在MQL4中,如果你不使用#property strict,你可以通过索引20来引用一个大小为10的数组。而什么也不会发生--程序将继续工作,但要由程序员决定下一步使用什么。如果他很聪明,他肯定会检查和控制一切,以免得到数组 以外的值,但如果他 "粗略 "地做,他就不会去管这种控制,而且 "主要的是它能工作,但它会以某种方式如何..."。
大多数用户,没有理会这一点,一直在抱怨 "糟糕、邪恶和复杂的MQL5",因为它不允许他们像以前一样伪造自己的创作。但是,那些最初认为并创建了具有检查和控制接收数据的代码的人,没有注意到语言的复杂性有什么不同,现在想知道--"复杂性在哪里--是一样的......"。
尼古拉,不要担心MQL4,那里一切都很好。题主随心所欲地填入数组。一切都是。
你当然会这样做。
任何一个尊重自己和自己的程序的程序员,都不会让事情发生。在MQL4中,如果你不使用#property strict,你可以通过索引20来引用一个大小为10的数组。而什么也不会发生--程序将继续工作,但要由程序员决定下一步使用什么。如果他很聪明,他肯定会检查和控制一切,以免得到数组 以外的值,但如果他 "粗略 "地做,他就不关心这种控制,"主要是它的工作,以及如何--莫名其妙地--"。
大多数用户,没有理会这一点,一直在抱怨 "糟糕、邪恶和复杂的MQL5",因为它不允许他们像以前一样伪造自己的创作。但是,那些最初认为并创建了带有检查和控制接收数据的代码的人,并没有注意到语言的复杂性有什么不同,现在他们想知道--"复杂性在哪里--它是一样的......"。
遗憾的是!
好吧,Petr,由于MQL5的严格性,你有机会把代码放在相对的顺序中,并清除垃圾堆。
你甚至可以尝试用#property strict编译固定的代码回到MQL4,也许它在MT4上的运行速度会更快。
遗憾的是!
好吧,彼得,由于MQL5的严格性,我们有机会把代码放在相对的位置,并清理垃圾 堆。
你甚至可以尝试在MQL4中用#property strict来编译固定的代码,也许,在MT4中的工作速度会快很多。
这就是你如何先验地认定我的代码充满了垃圾的原因。
让我解释一下:内核是分阶段填充的,分几个步骤。如果在MT5中声明数组时,其中有垃圾(我不知道),那么在函数中建立内核的第一步,数组就超出了范围,因为我不是用指针指向变量,而是通过另一个内核单元来参考。如果它包含零,那就没问题,在第二次运行中会得到正确的值,但如果它包含垃圾,就会出现严重错误。
这一点你清楚吗?
彼得,我不知道你是什么意思。
确切地说,你不明白。你把我的任务与你自己的任务相比较......
我没有任何溢出的情况。考虑一下我的技术的具体情况(忘了你在忽略它)。如果你用数组中的另一个单元格作为一个单元格的指针,而其中有垃圾,那么你就出了数组。问题是,为了让你通过引用的单元格得到正确的值,你必须进入第二轮的内核构建。而在第二轮,价值将是正确的。但你不会因为一个关键的错误 而进入第二轮。
所有这些都是由于数组中的垃圾被声明。
因此,我们需要发明一些机制,在第一次设置大小(建立常规区域)的阶段和第二次调整内核大小(建立用户区域)的阶段清除二维数组(内核)。
确切地说,你不明白。相比之下,我的任务和你自己的...
继续创作独白--再连发10个帖子。
这就是你如何先验地认定我的代码充满了垃圾的原因。
让我解释一下:内核是分阶段填充的,分几个步骤。如果在MT5中声明数组时,其中有垃圾(我不知道),那么在函数中建立内核的第一步,数组就超出了范围,因为我不是用指针指向变量,而是通过另一个内核单元来参考。如果它包含零,那就没问题,在第二次运行中会得到正确的值,但如果它包含垃圾,就会出现严重错误。
这一点你清楚吗?
根本 不是这样的。这不是垃圾的问题,而是在mql4中没有#property strict。没有它,你会得到0而不是数组超限,在mql5中这已经是一个关键错误。也许,最好是检查数组的长度,而不是检查不存在的数组索引的内容。
Retag 根本不是这样的。这不是垃圾的问题,是mql4中缺乏#属性严格。如果没有这个噱头,你会得到0,而不是数组超限,在mql5中已经是关键错误。也许,最好是检查数组的长度,而不是检查不存在的数组索引的内容。
发生出界是因为指示 单元中存在垃圾。
比如说。
最初。
G_CORE[Object][Kanvas] = -123423452345; (rubbish)
G_CORE[Window][His_canvas]= -452345; (rubbish)
//-----------------------------------------------------------------
结果超出了阵列。
要重申的是。有些单元格在MT4中的数值为零,在第一阶段的核心填充中,第二轮被填充。
在MT5中,由于单元格中的垃圾,第一轮就出现了关键错误。
如果数组中的单元格是零,就不会有错误,内核会按顺序填充(因为它应该这样)。
这里有一个更准确的例子。
第一轮的内核建设。在其中一项职能中。
发生出界是因为指示 单元中存在垃圾。
比如说。
最初。
G_CORE[Object][Kanvas] = -123423452345; (rubbish)
G_CORE[Window][His_canvas]= -452345; (rubbish)
//-----------------------------------------------------------------
结果超出了阵列。
要重申的是。有些单元格在MT4中的数值为零,在第一轮填芯阶段的第二轮中被填入。
在MT5中,由于单元格中的垃圾,第一轮就出现了关键错误。
如果数组单元中存在零,就不会有错误,内核将被按顺序填充(应该如此)。
数组不初始化完全是kodopistael的错。在你自己的环境中寻找错误。重建你的算法。