您现在的位置:程序化交易>> 期货公式>> (MC)multicharts>> MC知识>>正文内容

数组溢出,错误的索引值:1 [MC]

  • MC用户求助:

    第一、您贴出来的代码应该不是全部的代码,因为这段代码中虽然定义了数组,但是代码中并没有使用到数组。

    第二、您定义的数组是动态数组,动态数组初始定义的时候(如您 代码中所示),只有一个数组元素,并且该数组元素的最大索引值是0,您 需要在代码中使用关键字array_setmaxindex来更改数组的大小。

    第三、动态数组是一种特殊的一维数组,您代码中是动态数组的定义;而一般一维数组的定义是需要在初始定义的时候就声明大小的,代码中不能动态的更改数组的大小,如下两个数组中,TR是动态数组,而DR是含有3个元素的一维数组,最大索引值是2,详细的在公式编译器中看关键字array的用法。
    array: TR[](0), DR[2](0);

    第四、说了这么多,还没有说过解决方法;您 只需要初始定义足够大的一维数组即可; 或者您 初始定义的动态数组,然后接着在代码中使用关键字更改其大小即可。数组溢出,例如,数组DR最大的索引值是0,而您却调用其索引值为1的值,即DR[1]

     

  • MC回复讨论一:

    第一、您贴出来的代码应该不是全部的代码,因为这段代码中虽然定义了数组,但是代码中并没有使用到数组。

    第二、您定义的数组是动态数组,动态数组初始定义的时候(如您 代码中所示),只有一个数组元素,并且该数组元素的最大索引值是0,您 需要在代码中使用关键字array_setmaxindex来更改数组的大小。

    第三、动态数组是一种特殊的一维数组,您代码中是动态数组的定义;而一般一维数组的定义是需要在初始定义的时候就声明大小的,代码中不能动态的更改数组的大小,如下两个数组中,TR是动态数组,而DR是含有3个元素的一维数组,最大索引值是2,详细的在公式编译器中看关键字array的用法。
    array: TR[](0), DR[2](0);

    第四、说了这么多,还没有说过解决方法;您 只需要初始定义足够大的一维数组即可; 或者您 初始定义的动态数组,然后接着在代码中使用关键字更改其大小即可。数组溢出,例如,数组DR最大的索引值是0,而您却调用其索引值为1的值,即DR[1]

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 511411198  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容