StringSplit()使用误区

StringSplit()是一个神奇的函数,比如可以这样用《使用StringSplit()检查按钮是否按下》,但它会造成内存泄露!

发现经过,我编的内存跟单工具EA一直发生如下错误提示:

2019-06-19

一直困惑不解,度娘一大堆也没用,今天偶尔发现mql5官网上也有一个帖子对此有抱怨,有个网友热心解答,可能跟StringSplit()有关。

联想到该函数使用了一个动态string型的数组(result[])来储存结果,参照如下官网说明,

2019-06-19

我们可以注意到一个事实,这个官方示例没有提示:使用完之后,要及时关闭它!

我的这个工具EA有两处使用了StringSplit(),再加上它是string型的动态数组,只要是动态数组就是内存泄露的高危发生源,报错也是string泄露,所以初步判定它就是罪魁祸首!

解决办法:使用ArrayFree(result)即可。

本博客所有文章如无特别注明均为原创。作者:天泓评测
分享到:更多

相关推荐

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)