设为首页收藏本站

 找回密码
 注册
查看: 3648|回复: 16
打印 上一主题 下一主题

反馈往数组末尾插入一项的bug [复制链接]

Rank: 1

精华
0
UID
121786
积分
40
帖子
19
主题
2
阅读权限
10
注册时间
2013-7-28
最后登录
2016-10-14
跳转到指定楼层
1#
发表于 2015-7-20 11:30:44 来自手机 |只看该作者 |倒序浏览
NumericArrayInsert(arr, GetNumericArraySize(arr), 1350);

反馈个bug,请问为啥这样往数组末尾动态插入一项,会导致数组除了插入了值是1350的这项外,其后面还额外增加了值为0的一项,如何解决?

超级版主

TB官方客服

Rank: 10Rank: 10Rank: 10

精华
0
UID
102452
积分
475
帖子
308
主题
11
阅读权限
200
注册时间
2012-3-5
最后登录
2021-3-8
2#
发表于 2015-7-20 13:11:14 |只看该作者
数组的范围声明和你通过NumericArrayInsert函数增加是一回事,如果你通过在程序中取值,那么它也会对数组大小改变。例如你声明了 Vars    NumericArray arr[10];  在后面 Commentary(Text(arr[100]))输出,那么大小就改变了。

使用道具 举报

Rank: 1

精华
0
UID
121786
积分
40
帖子
19
主题
2
阅读权限
10
注册时间
2013-7-28
最后登录
2016-10-14
3#
发表于 2015-7-20 13:30:21 来自手机 |只看该作者
本帖最后由 扶老二 于 2015-7-20 13:31 编辑
tianlan 发表于 2015-7-20 13:11
数组的范围声明和你通过NumericArrayInsert函数增加是一回事,如果你通过在程序中取值,那么它也会对数组大 ...


这个我知道,关键现在问题是我动态往数组后面插入新的一项,应该怎么做?不是用NumericArrayInsert(arr, GetNumericArraySize(arr), 1350);吗?

使用道具 举报

超级版主

TB官方客服

Rank: 10Rank: 10Rank: 10

精华
0
UID
102452
积分
475
帖子
308
主题
11
阅读权限
200
注册时间
2012-3-5
最后登录
2021-3-8
4#
发表于 2015-7-20 15:07:40 |只看该作者
扶老二 发表于 2015-7-20 13:30
这个我知道,关键现在问题是我动态往数组后面插入新的一项,应该怎么做?不是用NumericArrayInsert(arr,  ...

是啊,然后你就要注意在NumericArrayInsert有没有超过原定范围的使用。

使用道具 举报

Rank: 1

精华
0
UID
121786
积分
40
帖子
19
主题
2
阅读权限
10
注册时间
2013-7-28
最后登录
2016-10-14
5#
发表于 2015-7-20 15:36:26 来自手机 |只看该作者
本帖最后由 扶老二 于 2015-7-20 18:26 编辑
tianlan 发表于 2015-7-20 15:07
是啊,然后你就要注意在NumericArrayInsert有没有超过原定范围的使用。


超过了的。比如之前是空数组,然后用NumericArrayInsert(arr, GetNumericArraySize(arr), 1350);动态push一项进去之后,数组长度变成2了,除了push进去的1350之外,还多push进去了一项,值是0,如何解决?每次动态往数组最后插入一项之后,都会同时额外多插入值是0的一项,很无语,要不你试试?

使用道具 举报

超级版主

TB官方客服

Rank: 10Rank: 10Rank: 10

精华
0
UID
102452
积分
475
帖子
308
主题
11
阅读权限
200
注册时间
2012-3-5
最后登录
2021-3-8
6#
发表于 2015-7-21 09:22:11 |只看该作者
扶老二 发表于 2015-7-20 15:36
超过了的。比如之前是空数组,然后用NumericArrayInsert(arr, GetNumericArraySize(arr), 1350);动态push ...

这个不是bug,这是为了防止数组越界必须要遵守的规则。

使用道具 举报

Rank: 1

精华
0
UID
121786
积分
40
帖子
19
主题
2
阅读权限
10
注册时间
2013-7-28
最后登录
2016-10-14
7#
发表于 2015-7-21 12:58:28 |只看该作者
那么请问,我要往一个数组末尾动态追加一项,应该使用什么写法?

使用道具 举报

Rank: 1

精华
0
UID
121786
积分
40
帖子
19
主题
2
阅读权限
10
注册时间
2013-7-28
最后登录
2016-10-14
8#
发表于 2015-7-21 13:01:38 |只看该作者
tianlan 发表于 2015-7-21 09:22
这个不是bug,这是为了防止数组越界必须要遵守的规则。

那么请问往数组末尾追加一项,需要用什么样的写法?

使用道具 举报

超级版主

TB官方客服

Rank: 10Rank: 10Rank: 10

精华
0
UID
102452
积分
475
帖子
308
主题
11
阅读权限
200
注册时间
2012-3-5
最后登录
2021-3-8
9#
发表于 2015-7-21 14:50:50 |只看该作者
扶老二 发表于 2015-7-21 13:01
那么请问往数组末尾追加一项,需要用什么样的写法?

NumericArrayInsert(arr, GetNumericArraySize(arr)-1, 1350);

使用道具 举报

Rank: 1

精华
0
UID
121786
积分
40
帖子
19
主题
2
阅读权限
10
注册时间
2013-7-28
最后登录
2016-10-14
10#
发表于 2015-7-21 18:27:38 |只看该作者
tianlan 发表于 2015-7-21 14:50
NumericArrayInsert(arr, GetNumericArraySize(arr)-1, 1350);

这样是不行的,这样只写是往最后一个元素前面插入,而不是后面插入。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-12 02:53

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部