-- 作者:a141027
-- 发布时间:2018/3/12 10:04:39
--
我把代码贴出来。
variable:test[]=0;
setubound(test,3); test[1]:=1; test[2]:=2; test[3]:=3; setubound(test,0); setubound(test,3); check:valid(test[1]),nodraw,colorwhite; t1:test[1],nodraw,colorwhite; t2:test[2],nodraw,colorwhite; t3:test[3],nodraw,colorwhite;
|
-- 作者:无为剑
-- 发布时间:2018/3/12 13:05:26
--
目前在序列模式下测试确实有点问题。但是在逐K线模式下测试是没有问题的。
请空数组并不能真正从内存除去,为了减小内存碎片,数组存放的内存是不会随意改变的,只是告知数组管理模块这个数组已经被清空,此时数组的下标已经被置为0,好为后面的数组插入做准备。
variable:test[]=0;
setubound(test,3); test[1]:=1; test[2]:=2; test[3]:=3; setubound(test,0);
dd:UBOUND(test),nodraw;
在逐K线模式下,通过打印dd变量你就能看出数组的下标已经被清空了,从编程的合理性角度考虑,数组使用前你应该使用UBOUND先判断数组大小,而不是直接暴力使用数组下标来访问数组内容
|