首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行COBOL程序错误- mfcobol,呼叫.返程

运行COBOL程序错误- mfcobol,呼叫.返程
EN

Stack Overflow用户
提问于 2014-06-20 11:24:45
回答 2查看 4K关注 0票数 1

我对简单的cobol回呼测试程序有问题。

我用的是微聚焦cobol。

这是我的两个密码。

代码语言:javascript
复制
 ***************** CALLING PROGRAM 
   IDENTIFICATION DIVISION.
   PROGRAM-ID. callreturning.

   ENVIRONMENT DIVISION.

   DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 VA PIC S9(8) USAGE DISPLAY.
   01 VB PIC S9(8) USAGE DISPLAY.
   01 VC PIC 9(4) USAGE DISPLAY value 0.

   PROCEDURE DIVISION.
   MOVE 1 TO VA.
   MOVE 2 TO VB.
   move 3 to VC.
   CALL "add_two" USING  VA VB returning VC.

  * DISPLAY VA VB VC.
   EXIT PROGRAM.


   END PROGRAM callreturning.


  *********CALLED PROGRAM
   IDENTIFICATION DIVISION.
   PROGRAM-ID. add_two.

   ENVIRONMENT DIVISION.

   DATA DIVISION.

   LINKAGE SECTION.
   01 PARM_A PIC S9(8) USAGE DISPLAY.
   01 PARM_B PIC S9(8) USAGE DISPLAY.
   01 PARM_C PIC 9(4) USAGE DISPLAY value 0.

   PROCEDURE DIVISION USING PARM_A PARM_B returning PARM_C.
   move 3 to PARM_C.
  * ADD PARM_A TO PARM_B GIVING PARM_C.
   goback.
   END PROGRAM add_two.

调用程序只需使用重发值调用第二个程序。

但是当我同时编译程序和运行时,就会发生错误。

错误代码: 114、pc=0、call=1、seg=0 114试图访问超出内存范围的项(信号11)

我做错代码了吗?还是其他问题?请帮助我:)

  • 我在测试‘回归’短语
EN

回答 2

Stack Overflow用户

发布于 2014-06-21 15:59:22

如果您摆脱了returning语句,您的程序就会编译并工作得很好。

票数 1
EN

Stack Overflow用户

发布于 2014-06-23 02:38:22

背景

在链接部分中定义的01级别更像是C程序中的指针。对于正常参数,它们由调用程序设置。但是返回的参数将被取消分配。

错误可能是由于尝试使用未分配的指针造成的。

溶液

  1. 不要使用返回,因为它用于使用像java这样的语言。
  2. 在使用之前将存储分配给返回值。

请参见:

最后,返回用于使用java。返回时定义的任何“类型”都应该是java兼容的(即二进制长,而不是9(4))。我强烈建议不要在Cobol中使用返回的,除非您调用其他语言。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24326192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档