请高手帮我查一下一段小程序(100分)

  • 主题发起人 主题发起人 yanke
  • 开始时间 开始时间
Y

yanke

Unregistered / Unconfirmed
GUEST, unregistred user!
for i:=1 to cs do
begin
subn:=round(depth / (0.4*b));
for j:=1 to subn do
begin
***** depth1[i,j]:= thick/subn*(j-1/2)+depth[i-1];
showmessage('计算到底');
end ;
end ;
这一段小程序骗译没有错误,但运行后输入数据,光标就停在*****句上,并输出以下
错误信息提示:project cjjs.exe raised exception class Eaccessviolation with
message 'access violation at address 004565f3 in module 'cjjs.exe',read of address
FFFFFFFF,process stopped,use step or run to continue.
请各位高手指教!
 
如果你肯定是这句出错,那么可能是你定义的二维数组长度和这句中的有冲突
你调试时,看是不是循环第一次就出错,还是最后一次,如果是前者,应该
是别的地方出错,如果是后者,可能是数组长度问题,比较和subn和depth1
的定义是否一致,还有注意你定义的数组起点是0还是1
 
因为J是不确定得值,depth1[i,j]可能超出了你所定义的维数.例如,你定义
depth1[0..10,0..10],但J可能计算出为20,depth1[i,20]就超出了范围.
 
后退
顶部