TC官方合作论坛

标题: 调用数组越界(已解决) [打印本页]

作者: hyg1393040    时间: 2012-6-11 11:21
标题: 调用数组越界(已解决)
用大漠OCR识别,识别到可能为
case1:1,2,3
case2:1,2,3,4
case3:4,2
case4:2,
最长为4个数组
等等
如果识别到的数字有大于4则返回真否则返回假
string【】 sz=sring【3】
while(i<4)
if(convert.strtoint(djpd【i】,0)>3)
zt=真
break
else
zt=假
endif
i=i+1
if(djpd【i】=="")
    break
endif
endwhile
当情况为case1,3,4的时候就会弹出调用数组越界了- -怎么防止呢!

作者: TakeBobo    时间: 2012-6-11 11:44
数组大小  超出范围了吧。 判断下吧。
作者: 无情的冷风    时间: 2012-6-11 11:45
看看
作者: hyg1393040    时间: 2012-6-11 11:45
回复 2楼TakeBobo的帖子

知道超出了是如何判断呢?
if(djpd【】=="")
    break
endif
这样子不行啊
作者: 冷月无痕    时间: 2012-6-11 11:46
string【】 sz=sring【3】
你的数组初始化大小为3,当数组大小大于3时 就会出现越界
你可以初始化大小大一点
string【】 sz=sring【5】
作者: hyg1393040    时间: 2012-6-11 11:49
回复 5楼冷月无痕的帖子

是长度最长为4,当只有有1个长度或者2个长度,3个的时候就报错
作者: tyuyan    时间: 2012-6-11 12:01
是你调用数组越界了。  数组大小是没问题。
   自己设置断点调试下吧。
作者: cylhb    时间: 2012-6-11 12:44
计算djpd【i】数组的长度呗..
整型 长度=0
数组.大小(djpd,长度)
作者: yvyan    时间: 2012-6-11 14:06
变态的方法是定义数组string【】 sz=sring【10000】,就不会报越界了
作者: hyg1393040    时间: 2012-6-11 16:44
回复 9楼yvyan的帖子

是定义的长导致的- -帅哥
作者: hyg1393040    时间: 2012-6-11 16:46
回复 8楼cylhb的帖子

恩,这样狠麻烦,在字符串后便加个自己设置的字符,比如“aa”
if(djpd{1}="aa")
break
endif




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