IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Memory Allocation in COBOL


IBM Mainframe Forums -> COBOL Programming
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
lijin

New User


Joined: 03 Jun 2006
Posts: 2

PostPosted: Sat Jun 10, 2006 5:22 pm
Reply with quote

HI... I HAVE A DOUBT .........PLEASE HELP ME....
I WROTE A SIMPLE MOVE VERB PROGRAM....

IDENTIFICATION DIVISION.
PROGRAM-ID.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 CLASS.
02 NAME PIC A(5).
02 AGE PIC 9(2).
02 MARK1 PIC 9(3).
02 MARK2 PIC 9(3).
02 MARK3 PIC 9(3).

01 TEMP.
02 NAME PIC A(3).
02 AGE PIC 9(2).
02 MARK1 PIC 9(3).
02 MARK2 PIC 9(3).
02 MARK3 PIC 9(3).
PROCEDURE DIVISION.
P1.
DISPLAY "ENTER VALUES".
ACCEPT NAME OF CLASS.
ACCEPT AGE OF CLASS.
ACCEPT MARK1 OF CLASS.
ACCEPT MARK2 OF CLASS.
ACCEPT MARK3 OF CLASS.
MOVE CLASS TO TEMP.
DISPLAY TEMP.
STOP RUN.

I HAVE GIVE THESE VALUES AS INPUT:
LIJIN
22
88
92
93
I
GOT OUTPUT LIKE THIS IN MSCOBOL(72):LIJIN220880920
I GAVE A(5) FOR NAME IN GROUP 'CLASS' BUT ONLY A(3) FOR NAME IN GROUP 'TEMP'. WHEN I MOVED THE GROUP 'CLASS' TO 'TEMP' THE CHARACTER FIELD IN THE 'TEMP' GROUP WAS NOT ENOUGH [ONLY A(3)]TO RECIEVE THE INPUT 'LIJIN' (CONTAINED 5 CHARACTER FIELD).BUT HOW IT ALLOCATED 5 CHARACTER SPACE FOR THE NAME FILED IN 'TEST' GROUP?HOW [b]THE SPACE IS TAKEN FROM A NUMERIC DATA TYPE AND THE LAST NUMERIC FIELD WAS SHORTENED...? IS IT POSSIBLE TO STORE THE CHARACTER FILED IN A NUMERIC FILED?
I GAVE A SEPERATE MOVE STATEMENT LIKE THIS

MOVE NAME OF CLASS TO MARK1 OF TEMP.
THEN A RUNTIME ERROR OCCURED:'NON NUMERIC DATA'...

HOW THE MEMORY ALLOCATION IN THE ABOVE PROGRAM WAS TAKEN PLACE....?

WHEN I USED THE OPTION

'MOVE CORRESPONDING CLASS TO TEMP' WITH THE SAME INPUTS I GOT THE OUTPUT LIKE THIS

LIJ22088092093
WHY THIS DIFFERENCE OCCURS.....?
Back to top
View user's profile Send private message
Marso

REXX Moderator


Joined: 13 Mar 2006
Posts: 1353
Location: Israel

PostPosted: Sun Jun 11, 2006 7:08 pm
Reply with quote

Code:
MOVE CLASS TO TEMP

This command moved the block of memory named CLASS, of length 16, into the block of memory named TEMP, of length 14.
During this move, the individual fields are not involved and their contents is not checked.
The receiving field is shorter, so a truncation occur and the last 2 chars are lost.

Code:
MOVE CORRESPONDING CLASS TO TEMP

This command moves the individual fields one by one, if they have the same name. It is equivalent to:
MOVE NAME OF CLASS TO NAME OF TEMP
MOVE AGE OF CLASS TO AGE OF TEMP
and so on.
In your case, truncation occur on the 1st of the "individual" MOVEs, all other fields are moved OK.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> COBOL Programming

 


Similar Topics
Topic Forum Replies
No new posts Replace each space in cobol string wi... COBOL Programming 3
No new posts COBOL -Linkage Section-Case Sensitive COBOL Programming 1
No new posts COBOL ZOS Web Enablement Toolkit HTTP... COBOL Programming 0
No new posts CLIST - Virtual storage allocation error CLIST & REXX 5
No new posts Calling DFSORT from Cobol, using OUTF... DFSORT/ICETOOL 5
Search our Forums:

Back to Top