2D array going beyond subscript



Support for OS/VS COBOL, VS COBOL II, COBOL for OS/390 & VM and Enterprise COBOL for z/OS

2D array going beyond subscript

Postby AbhiKulkarni » Wed Aug 06, 2014 3:54 pm

Hi,

This is what I am facing :-

Array declaration -
05 WS-D1 OCCURS 10 TIMES INDEXED BY D1-IX.
     10 WS-P1.
         15 WS-P1-CNT PIC S9(04) COMP.
         15 WS-P1-TBL.
             20 WS-P1-ARRAY OCCURS 05 TIMES INDEXED BY P1-IX.
                  25 WS-P1-ID PIC S9(09) COMP.
     10 FILLER X(10).


The P1 array is of (10,5) size.

Now when i do MOVE WS-P1-ID(WS-IX1, WS-IX2) TO WS-TEMP-ID in a perform (a badly coded perform), it allows me to do this till the value of WS-IX2 is 75.
i.e. when it does MOVE WS-P1-ID(1, 76) TO WS-TEMP-ID it abends. :o

Now, more confusing part. I increased the FILLER from X(10) to X(100) in the above declaration. And now it is allowing the array to be performed till WS-IX2 is 84.

I may have sounded confused here (which i am actually..!!), so please let me know if you need more information.

Thank you,
Abhishek.

Code'd
AbhiKulkarni
 
Posts: 6
Joined: Fri Dec 09, 2011 4:33 pm
Has thanked: 0 time
Been thanked: 0 time

Re: 2D array going beyond subscript

 

Re: 2D array going beyond subscript

Postby BillyBoyo » Wed Aug 06, 2014 5:34 pm

If you look at the Programming Guide documentation of SSRANGE (I assume the abend you are talking about is caused by SSRANGE) you should discover that SSRANGE will abend if you attempt to reference data outside the table, but it will not validate individual subscript values. So you may feel that 20 is an invalid value, but if its use refers to data within the table as a whole, SSRANGE is not going to complain.

You can calculate what you'd expect the maximum lower-level subscript to be, given the table size. Extending the FILLER just extended the size of the table, so allowed your unchecked subscript to get even larger.
BillyBoyo
Global moderator
 
Posts: 3804
Joined: Tue Jan 25, 2011 12:02 am
Has thanked: 22 times
Been thanked: 264 times


Return to IBM Cobol

 


  • Related topics
    Replies
    Views
    Last post