ポインター・ヒープ変数
a=ptr_new(b)
- 新しいヒープ変数にbの値をコピーし、それを指すポインタを作成する。
a=ptr_new(b,/no_copy)
- ヒープ変数bを指すポインタを作成し、bを未定義にする。すなわち
a=ptr_new(temporary(b))
と同じ。
a=ptr_new()
- NULLポインタを作成する。
a=ptr_new(/allocate_heap)
- 未定義のヒープ変数を指すポインタを作成する。
a=ptrarr(10)
- NULLポインタの配列を作成。
nozero
キーワードでNULLに初期化されない。allocate_heap
キーワードで各ポインタは未定義のヒープ変数を指す。
*a
- aが指すヒープ変数を返す。
*a
が構造体の場合、その構造体に含まれるフィールドを得るには演算子の優先順位のため(*a).b
としなければならない。
ptr_valid(a)
- ポインタaが存在する正しいヒープを指しているときは1、そうでないとき0を返す(Byte型)。
ptr_free,a
- ポインタaの指すヒープを解放。a自体は変更されない。
help,/heap_variables
- ヒープの利用状況を見る。
heap_gc
- ヒープ変数のガベージ・コレクションを行う。IDL 8.0からは自動的にガベージ・コレクションが行われるようになったので、自動的ガベージ・コレクションをoffにしているのでない限り
heap_gc
を実行する必要はない。
西田圭佑 (NISHIDA Keisuke)
nishida at kwasan.kyoto-u.ac.jp
$Id: pointer.html,v 1.2 2013/05/01 09:40:06 nishida Exp $