"CArray" (コンパイルタイプ)
"CArray"::[type]
指定された型の要素を含む,C言語と互換の配列型を表す.
コンストラクタ
- "Managed"でラップされていない限り,CreateTypeInstanceで構築されたC配列は自動的にメモリ管理されず,DeleteObjectを使って手動で解放されなければならない. »
- CreateTypeInstance["CArray"::[type],len]は長さ len のC配列を構築する.
- CreateTypeInstance["CArray"::[type],carr,len]は長さ len のC配列 carr のコピーを構築する.
- CreateTypeInstance["CArray"::[type],array]は与えられた配列の要素を含むC配列を構築する.サポートされる配列型には"ListVector","NumericArray","PackedArray"がある.
- CreateTypeInstance["Managed"::["CArray"::[type]],…]はメモリ管理されたC配列を構築する.
特性
- 型"CArray"::[type]の carr のInformation[carr,"ElementType"]は type を与える.
- FromRawPointer[carr,offset]はC配列 carr に指標を付ける.指標は0から始まる.
変換
- 配列型は管理されたC配列にCastすることができる.サポートされる配列型には"ListVector","NumericArray","PackedArray"がある.
- CastはC配列を未加工のポインタにビットキャストしたり未加工のポインタからビットキャストするために使うことができる.
配列
"RawPointer"および"OpaqueRawPointer"
例題
すべて開くすべて閉じる考えられる問題 (1)
"Managed"オブジェクトの外部で生成されたC配列は自動的にメモリ管理されないので,手動で解放しなければならない.管理されないC配列を作成する関数をコンパイルする:
DeleteObjectを使って手動でC配列を解放する: