Detach

配列の指定された位置から要素を削除します。

CObject*  Detach(
  int  pos      // 位置
  )

パラメータ

pos

[in] 削除される要素の位置

戻り値

成功の場合は削除された要素へのポインタ、要素が削除できない場合は NULL

注意事項

配列から削除された要素に使用されていたメモリはメモリ管理フラグに関係なく解放されません。配列要素ポインタは使用されたら解放されなければなりません。

例:

//--- CArrayObj::Detach(int) の例
#include <Arrays\ArrayObj.mqh>
//---
void OnStart()
 {
  CArrayObj *array=new CArrayObj;
  //---
  if(array==NULL)
    {
    printf("Object create error");
    return;
    }
  //--- 配列要素を追加する
  //--- . にて。.
  CObject *object=array.Detach(0);
  if(object==NULL)
    {
    printf("Detach error");
    delete array;
    return;
    }
  //--- 要素を使用する
  //--- . にて。.
  //--- 要素を削除する
  delete object;
  //--- 配列を削除する
  delete array;
 }