[in] Количество элементов массива для копирования. Определяет длину результатной строки.
По умолчанию -1, что означает копирование до конца массива, либо до встречи терминального 0.
Терминальный 0 также будет скопирован в массив-приемник,
при этом размер динамического массива может быть увеличен при необходимости под размер строки.
Если размер динамического массива больше длины строки, то размер массива уменьшен не будет.
2021.05.2502:08:33.329 Test (AUDUSD,M1) StringToCharArray 32021.05.2502:08:33.329 Test (AUDUSD,M1) ch[] ABC
2021.05.2502:08:33.329 Test (AUDUSD,M1) GetLastError0
2021.05.2503:10:07.696 Test (AUDUSD,M1) StringToShortArray32021.05.2503:10:07.696 Test (AUDUSD,M1) sh[] ABC
2021.05.2503:10:07.696 Test (AUDUSD,M1) GetLastError0
错误在于两个函数之间的差异,而不是结果,因为这只是一个文档问题,当count=0时,应该输出什么。
不,还有统一性原则这种东西。这个错误很明显。如果你不理解为什么它是一个错误,那是你的问题。
这个错误是两个函数之间的不匹配,而不是它们的结果,因为这只是一个文档问题,当count=0时要输出什么。
关于交易、自动交易系统和策略测试的论坛
错误, 漏洞, 问题
罗曼, 2021.05.07 22:07
整个诀窍就在函数描述中))。
Automatic progress ))
什么让用户更困惑。
而实践者如何向理论家解释这样一个矛盾的结果?
结果:4:0
预期:0:0
或者还可以--纠正一下文件?好吧,毕竟不是为了修复bug!
我的解释很简单:这些标准函数中的一个有错误--我甚至知道是哪一个
在那之后,开发商已经纠正了,所以你之前的解释是不好的。
函数 是相同的(只在类型上不同,事实上是模板),描述是相同的(甚至有交叉引用),但结果却不同。
开发人员已经修复了 它,所以你之前的解释并不适用
究竟修复了什么?
![str1 str1](https://c.mql5.com/3/356/str.PNG)
文件中一直都是这样的。
你检查过被修复的内容了吗? ))
修复了,按你的要求分割。
3个字符,比如说。
但如果你在count 中传递0,整个字符串的结尾0将被自动 复制。
而StringLen()并没有返回一个终止的零))即使字符串是空的,结尾0也会被复制。
你到底修复了什么?
但如果你给count 传递0,整个字符串的结尾0将被自动 复制。
即使字符串是空的,结尾0也会被复制。
为什么在StringToShortArray 中不同?请简要地解释一下,不要不必要地狡辩和莫名其妙地引用你先前的精彩解释(最后失败了)--用简单的语言--为一个傻瓜解释。
没有;)和其他不适当的符号在这个主题中。
为什么在StringToShortArray 中不同?如果可能的话,请简要地解释一下,不要花言巧语,也不要不可理喻地引用你先前的精彩解释(最后失败了)--用简单的语言--为一个傻瓜解释。
没有;)和其他不相关的符号在这个主题中。
分割工程
我不知道为什么计数0 不起作用。
也许这个智能自动计数0 在这里不起作用,根据帮助,它已经是一个不匹配。
而且这一定是个错误。
总之,要么这里有一个错误,在计数0时不工作,
,要么StringToCharArray中有一个错误,在计数0时工作。
为了使你理解解释的合理性,请学习C语言的基础知识,特别是处理字符串。
那么就不会有问题了。
简而言之,要么这里有一个错误,即计数0 不起作用,
,要么在StringToCharArray中有一个错误,即计数0起作用。
聪明的!
聪明的!
但如果你转过头来,给数组传递一个0的大小,并给它分配0的内存,说起来很奇怪。
这就是为什么计数0 会触发自动调整大小到字符串的末端。
按照逻辑,它也应该在StringToShortArray 中工作。
错误会被更好地返回,没有任何调整。
当然,这是个天才。
但如果你转过头来,传递一个零的数组大小并为其分配零的内存,说起来很奇怪。
这就是为什么计数0会触发自动调整大小到字符串的末端。按照逻辑,它也应该在
StringToShortArray 中工作。他们最好在没有任何调整的情况下返回一个错误。
。
而在
CharArrayToString
为什么不一路走到底?
结果:""
而在
为什么不一路走到底?
结果:""
可能是因为CharArrayToString 中没有[out]动态数组。
而开发商决定这是不需要的。
虽然类似的功能中的不同逻辑会造成更多的混乱。