CLP : pointer et passage en paramètre
Cet exemple montre comment utiliser un pointer se déplacer et le passer en paramètre à un deuxième programme.
Premier programme POINTER1 
PGM                                                              
/* DONNÉES ASSOCIÉS AU POINTEUR */                               
             DCL        VAR(&MOIS) TYPE(*CHAR) LEN(108) +        
                          VALUE('JANVIER  FEVRIER  MARS     +    
                          AVRIL    MAI      JUIN     JUILLET  +  
                          AOUT     SEPTEMBREOCTOBRE  NOVEMBRE +  
                          DECEMBRE')                             
/* ADRESSE DU POINTEUR */                                        
             DCL        VAR(&MP) TYPE(*PTR) ADDRESS(&MOIS)       
/* ADRESSE DU POINTEUR */                                        
             DCL        VAR(&LP) TYPE(*CHAR) STG(*BASED) LEN(9) +
                          BASPTR(&MP)                            
/* INDICE DE BOUCLE */                                           
             DCL        VAR(&IND) TYPE(*INT) LEN(2)              
/* BOUCLE DE LCTURE DU TABLEAU */                                
             DOFOR      VAR(&IND) FROM(1) TO(6 )
             SNDUSRMSG  MSG('1 MOIS : ' *BCAT &LP) MSGTYPE(*INFO) 
             CHGVAR     VAR(%OFFSET(&MP)) VALUE(%OFFSET(&MP) + 9) 
             ENDDO                                                
             CALL       PGM(POINTER2) PARM(&MP)                   
             ENDPGM                                               
Deuxième programme   POINTER2
PGM  PARM(&MP)                                                    
             DCL        VAR(&MP) TYPE(*PTR) ADDRESS(&RESULT)      
DCL        VAR(&RES) TYPE(*CHAR) STG(*BASED) LEN(9)  +            
                          BASPTR(&MP)                             
DCL &IND *INT                                                     
             DOFOR      VAR(&IND) FROM(7) TO(12)                  
             SNDUSRMSG  MSG('2 MOIS : ' *BCAT &RES) MSGTYPE(*INFO)
             CHGVAR     VAR(%OFFSET(&MP)) VALUE(%OFFSET(&MP) + 9) 
             ENDDO                                                
             ENDPGM                                               
Cet exemple utilise le tableau des mois chargé dans le premier programme
et se déplace jusqu'à juillet et passe la main avec le pointer à pointer2 qui lit la suite !