CheckPointer 関数
この関数は、オブジェクトポインタのタイプを ENUM_POINTER_TYPE 列挙値から選択して取得します。これは、ポインタの有効性をチェックするために使用されます。0以外の値は、ポインタがアクセスして使用できることを保証します。
不正なポインタを呼び出した場合、プログラムが重大なエラーとして終了します。そのため、ポインタを使用する前に CheckPointer関数を呼び出す必要があります。次の場合、ポインタは正しくない可能性があります。
・ポインタが NULL(0)。
・オブジェクトが delete演算子を使用して削除されている。
データ型と構成・戻り値
enum CheckPointer(①);
戻り値は、オブジェクトポインタのタイプを返します。取得されるタイプは ENUM_POINTER_TYPE 列挙値から選択されます。
引数 [1]
CheckPointer関数は 1個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | anyobject | object* | - | - | オブジェクトポインタ。 |
使用例
CheckPointer関数によるオブジェクトポインタのタイプの確認
CheckPointer関数を使ってオブジェクトポインタのタイプ(ENUM_POINTER_TYPE)を確認します。
コード
// CheckPointer関数によるオブジェクトポインタのタイプの確認
#property strict
void OnInit() {
Ctest* test_class;
Ctest* test_class1; // ①
Ctest test_class2[2]; // ②
test_class1 = new Ctest;
test_class = GetPointer(test_class1);
Print("①new演算子で作成したオブジェクトのポインタ:", test_class, " ポインタタイプ:", CheckPointer(test_class));
test_class = GetPointer(test_class2[0]);
Print("②配列で作成したオブジェクトのポインタ:", test_class, " ポインタタイプ:", CheckPointer(test_class));
}
class Ctest{};
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)