レコード域のアドレスを受け渡す必要がある場合には、ポインター・データ項目を使用することができます。ポインター・データ項目とは、USAGE IS POINTER 文節を使用して定義されているデータ項目、または ADDRESS 特殊レジスターであるデータ項目のいずれかです。
ポインター・データ項目の代表的な適用は、チェーン・リスト (各レコードがそれぞれ次のレコードを指し示す一連のレコード) の処理です。
プログラム相互間のアドレスをチェーン・リストに入れて渡す場合は、NULL を使用して、次の 2 つの方法のいずれかで無効なアドレスの値 (非数値 0) をポインター項目に割り当てることができます。
最後のレコードのポインター・データ項目がヌル値を含んでいるチェーン・リストの場合、リストの終わりを検査するために次のコードを使用することができます。
IF PTR-NEXT-REC = NULL . . . (logic for end of chain)
リストの終わりに達していない場合、プログラムはレコードを処理して次のレコードに移ることができます。
呼び出し側プログラムから渡されるデータには、無視したいヘッダー情報が含まれていることがあります。 ポインター・データ項目は数値ではないので、それらに対して直接に算術演算を行うことはできません。しかし、ヘッダー情報をバイパスするために、SET ステートメントを使用して、渡されたアドレスを増分することができます。
関連タスク
LINKAGE SECTION のコーディング
引数を受け渡すための PROCEDURE DIVISION のコーディング
関連参照
SET ステートメント
(「COBOL for Windows 言語解説書」)