JVM COBOL では、バイト配列は、JVM 専用タイプ java.lang.Byte[] を使用して保存されます。バイト配列は、01 レベルで COBOL テーブルとして宣言する必要があります。サイズは 01 定義の一部として定義できます。あるいは、ANY キーワードを使用して定義しないでおくこともできます。次に例を示します。
01 b java.lang.Byte occurs any.
バイト型配列はオブジェクトですが、ネイティブ エントリ ポイントのリファレンスで渡すことができます。これは、一次元配列にのみ適用されます。
配列に含まれるバイトは、同じサイズのネイティブ メモリのセクションに変更されずにコピーされ、この一部のメモリに対するリファレンスがネイティブ コードに渡されます。これは、COBOL では pic x データに相当し、C では char* データに相当します。次に例を示します。
JVM COBOL:
01 b java.lang.Byte occurs any. 01 i binary-long. 01 b-ptr procedure-pointer. set size of b to 1024 perform varying i from 1 by 1 until i > 1024 set b(i) to i /8 end-perform set b-ptr to entry "doStuff" call "doStuffWith1k" using by reference b
ネイティブ COBOL:
linkage section. 01 b pic x(1024). ... entry "doStuffWith1k" using by reference b. ...