TC官方合作论坛

标题: 5.1越界调用数组不报警,改变原数组大小 [打印本页]

作者: 贪吃蛇    时间: 2015-5-9 17:39
标题: 5.1越界调用数组不报警,改变原数组大小
如下代码,在应该报错“数组调用越界”时没有报,并且在越界访问数组后会自动改变数组的大小。
  1. 变量 arr=数组()
  2.     变量 s0=数组大小(arr)
  3.     调试输出("空数组大小="&s0)         //值为0
  4.     变量 v0=arr[0]                    //此句应该是调用越界
  5.     调试输出("空数组的第1个元素值="&v0)//值为null
  6.     变量 v1=arr[1]                    //此句应该是调用越界
  7.     调试输出("空数组的第2个元素值="&v1)//值为null
  8.     变量 s1=数组大小(arr)
  9.     调试输出("访问空数组的2个元素后,数组大小="&s1)//值为2,说明对数组的访问改变了数组的大小
复制代码



作者: 这论坛不错    时间: 2015-5-9 17:44
这个不是BUG,而是数组内部自动处理了,4.X有数组空间.重定义,现在没了,自动处理了
作者: 贪吃蛇    时间: 2015-5-9 17:53
这论坛不错 发表于 2015-5-9 17:44
这个不是BUG,而是数组内部自动处理了,4.X有数组空间.重定义,现在没了,自动处理了 ...

越界调用返回个空值还改变数组大小,这样处理不妥吧。
感觉比C++越界访问还危险,那个返回未知值却不会改变数组尺寸。
作者: jimye0526    时间: 2015-5-9 18:37
5.1没有下标越界这一说了动态数组了

作者: 贪吃蛇    时间: 2015-5-9 20:16
jimye0526 发表于 2015-5-9 18:37
5.1没有下标越界这一说了动态数组了

这样越界访问就不知道了,特别是数组元素值也是null时,感觉使用上很不安全。




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1