回 帖 发 新 帖 刷新版面

主题:多层子程序参数传递问题 access violation!

程序如下:
   program ee
     ...
     call sub1(3,SHUZU1,BIANLIANG1,SHUZU2,SHUZU3,SHUZU4)
     ...
   end ee
    
  subroutine sub1()
     ...
     call sub2(3,SHUZU5,BIANLIANG1,SHUZU2,SHUZU3,SHUZU4)
     ...
     ...
     call sub3(3,SHUZU6,BIANLIANG1,SHUZU2,SHUZU3,SHUZU4)
     ...
     ...
     call sub4(SHUZU5,SHUZU6,BIANLIANG1)
     ...
     ...
     call sub3(3,SHUZU6,BIANLIANG1,SHUZU2,SHUZU3,SHUZU4)
     ...
  end 
程序调试时出现access violation!在调试时发现程序运行到sub2时,提示BIANLIANG1,SHUZU2,SHUZU3,SHUZU4等变量出现“Undefined address!”但程序都对其进行声明了!不知何故?!

回复列表 (共2个回复)

沙发

BIANLIANG1,SHUZU2,SHUZU3,SHUZU4
如果没有猜错的话,你是在program ee里声明的吧。
program ee里声明的东西跟subroutine一点关系也没有。

板凳

谢谢您的回复!
已发现错误,是自己粗心所致,
在第二次调用
     ...
     call sub3(3,SHUZU6,BIANLIANG1,SHUZU2,SHUZU3,SHUZU4)
     ...
时,参数遗漏了!写成:
     ...
     call sub3(3,SHUZU6,BIANLIANG1)
     ...

我来回复

您尚未登录,请登录后再回复。点此登录或注册