Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
💻 COBOL

COBOL Pointer Usage

Advanced 🕑 15 min read 👁 0 views

COBOL Pointer Usage

Pointers provide direct memory addressing for advanced data manipulation.

Pointer Definition

```cobol 01 WS-POINTER USAGE POINTER. 01 WS-PROCEDURE-PTR USAGE PROCEDURE-POINTER. 01 WS-FUNCTION-PTR USAGE FUNCTION-POINTER. ```

Setting Pointers

```cobol SET WS-POINTER TO ADDRESS OF WS-DATA. SET WS-POINTER TO NULL. ```

Using Pointers with LINKAGE

```cobol LINKAGE SECTION. 01 LS-DATA PIC X(100).

SET ADDRESS OF LS-DATA TO WS-POINTER. ```

ALLOCATE Statement

```cobol ALLOCATE 1000 CHARACTERS RETURNING WS-POINTER. ```

FREE Statement

```cobol FREE WS-POINTER. ```

Common Uses

  • Dynamic memory allocation
  • Interfacing with other languages
  • Processing variable-length data

Code Example

       IDENTIFICATION DIVISION.
       PROGRAM-ID. POINTER-DEMO.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 WS-PTR POINTER.
       01 WS-DATA PIC X(100) VALUE 'Sample Data'.
       01 WS-LENGTH PIC 9(5) VALUE 100.
       LINKAGE SECTION.
       01 LS-DATA PIC X(100).
       PROCEDURE DIVISION.
      * Set pointer to data address
           SET WS-PTR TO ADDRESS OF WS-DATA
           
      * Use pointer to access data
           SET ADDRESS OF LS-DATA TO WS-PTR
           DISPLAY 'Via pointer: ' LS-DATA
           
      * Check for null
           IF WS-PTR = NULL
               DISPLAY 'Pointer is null'
           END-IF
           
           STOP RUN.