Figure 4. Setting a pointer to a varying length field

D dogName         s             10a   varying inz('Spot')
D catName         s             25a   varying(4) inz('Puff')
D p               s               *
 /free
     p = %addr(dogName : *data); // points to dogName + 2 bytes
     p = %addr(catName : *data); // points to catName + 4 bytes