TC官方合作论坛

 找回密码
 立即注册
查看: 2229|回复: 12
打印 上一主题 下一主题

[问题] 关于数组调用越界的问题

[复制链接]
跳转到指定楼层
楼主
发表于 2012-7-18 16:50:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
例子1:
string a1,a2,a3,a4,a5,a6
int bta1,bta2,bta3
string【】 io = string【2】
string ip="1,2,2,3,4,6,7,8,09,3,1,5"
bool ffgg = str.split(ip,",",io)
if(ffgg)
help.messagebox("0")
a1=io【0】
help.messagebox("1")
a2=io【1】
help.messagebox("2")
a3=io【2】
help.messagebox("3")
a4=io【3】
help.messagebox("4")
a5=io【4】
array.size(io,bta1,bta2,bta3)
help.messagebox(convert.inttostr(bta1))
endif
数组定义过小并不会造成数组越界- -!(分割后会自动重新定义数组的下标?)
例子2.
string a1,a2,a3,a4,a5,a6
int bta1,bta2,bta3
string[] io = string【9】
string ip="1,2"
bool ffgg = str.split(ip,",",io)
if(ffgg)
help.messagebox("0")
a1=io【0】
help.messagebox("1")
a2=io【1】
help.messagebox("2")
a3=io【2】
help.messagebox("3")
a4=io【3】
help.messagebox("4")
a5=io【4】
array.size(io,bta1,bta2,bta3)
help.messagebox(convert.inttostr(bta1))
endif
如果数组调用的足够大,但是还是出现了越界0 0!

(针对上述情况)看来定义数组大小并不会影响数组调用越界,只有当对数组进行赋值时才会弹出越界
针对上述越界应该怎么样写?
string a1,a2,a3,a4,a5,a6
int bta1,bta2,bta3
string{} io = string【9】
string ip="1,2"
bool ffgg = str.split(ip,",",io)

if(ffgg)///当然先要分割成功 - -!然后判断数组大小
array.size(io,bta1,bta2,bta3)
if(bta>=3)////一定要把你赋值的最后一个数组{减一}!
help.messagebox("0")
a1=io【0】
help.messagebox("1")
a2=io【1】
help.messagebox("2")
a3=io【2】
help.messagebox("3")
a4=io【3】
help.messagebox("4")
a5=io【4】
help.messagebox(convert.inttostr(bta1))
endif
endif
这样就不出越界了-0 0!



回复

使用道具 举报

沙发
发表于 2012-7-18 17:08:38 | 只看该作者
嗯,调用数组要注意下标问题,
最大下标=数组大小-1

这样就不会越界了
回复 支持 反对

使用道具 举报

板凳
发表于 2012-7-18 17:20:28 | 只看该作者
分割后就对数组无论大小,还是值,都重新赋值了,

如果还调用前面肯定会越界
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2012-7-18 17:39:48 | 只看该作者
回复 3楼陌上青衣。的帖子

最好默认出现的话是空,那样新手就更容易上手了!
回复 支持 反对

使用道具 举报

5#
发表于 2012-7-18 17:45:34 | 只看该作者
分割的方法会 释放掉以前的数组大小,并重新分配数组的大小!

不管是分割还是 数组返回值,TC都会做这样的处理! 理解了就好!
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2012-7-18 17:52:55 | 只看该作者
回复 3楼陌上青衣。的帖子

bool fga=str.split(",,",",",sz)
array.size(sz,c1)
数组长度为1- -?
回复 支持 反对

使用道具 举报

7#
 楼主| 发表于 2012-7-18 17:57:39 | 只看该作者
回复 3楼陌上青衣。的帖子

数组分割后,数组最小为1,- -?那样的话识别坐标的话还是容易出现问题啊- -? 因为坐标就一个"逗号分隔符"!如果
ocr识别到的坐标为"1,"那么给y赋值的时候还是会爆出数组调用越界啊- -!
回复 支持 反对

使用道具 举报

8#
发表于 2012-7-18 17:59:04 | 只看该作者
回复 6楼hyg1393040的帖子

按道理是3个空字符.
回复 支持 反对

使用道具 举报

9#
发表于 2012-7-18 18:05:06 | 只看该作者
哈哈,事实证明,数组大小是1
回复 支持 反对

使用道具 举报

10#
发表于 2012-7-18 18:13:27 | 只看该作者
回复 3楼陌上青衣。的帖子

数组分割后,数组最小为1,- -?那样的话识别坐标的话还是容易出现问题啊- -? 因为坐标就一个"逗号分隔符"!如果

hyg1393040 发表于 2012-7-18 17:57:39

怎么会, 做字库的时候是1-9还有逗号","
比如
识别出来的就是  : 89,137


字符串分割 逗号,

x=分割返回[0]
y=分割返回[1]
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-18 11:58 , Processed in 0.148312 second(s), 24 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表