トップ  >  リファレンス  >  配列関数  >  ArrayCopy
スポンサーリンク
検索
カスタム検索
リファレンスツリー
オススメ
ArrayCopy


ArrayCopy


配列を別の配列へコピーします

関数書式:
int  ArrayCopy(
   void&         dst_array[],               // コピー先配列
   const void&  src_array[],               // コピー元配列
   int           dst_start = 0,             // コピー先配列のコピー開始するインデックス
   int           src_start = 0,             // コピー元配列のコピー開始するインデックス
   int           count     = WHOLE_ARRAY  // コピーする要素数
   );



■引数
引数名 初期値 I/O 詳細
dst_array[] - Out コピー先配列
src_array[] - In コピー元配列
dst_start 0 In コピー先配列の、コピーを開始するインデックス。
省略した場合インデックスは0です。
src_start 0 In コピー元配列の、コピーを開始するインデックス。
省略した場合インデックスは0です。
count WHOLE_ARRAY In コピーする要素数。
省略した場合は全要素コピーされます。


■戻り値
コピーされた要素数を返します


■備考
count < 0 または count > src_start の場合、
残りの全ての配列がコピーされます。

配列は左から右へコピーされます。

時系列配列をコピーする場合、
開始位置を正しく調整する必要があります。

コピー元配列とコピー先配列が同じ場合、結果は不明です。


配列が異なる型の場合、
コピー中に、各要素をコピー先配列の型に変換しようと試みます。

文字列配列は、文字列配列へのみコピー出来ます。

初期化を必要としているオブジェクトを含む構造体クラスの配列は、コピーできません。

構造体配列は、同じタイプの配列へコピーする事が出来ます。


静的及び動的配列(クラス・構造体メンバを除く)の場合、
コピー先の配列サイズは自動的にコピーされるデータサイズに変更されます
(動的配列の場合は配列サイズを超えた場合)。


サンプルソース:
void OnInit(){

   int src_data[5] = { 11, 22, 33, 44, 55}; // コピー元配列
   int dst_data[];                          // コピー先配列(動的配列)

   ArrayCopy( dst_data, src_data, 0,0,WHOLE_ARRAY); // 配列をコピー

   PrintFormat("コピーされたサイズ=%d",ArraySize(dst_data));

   for (int i=0; i < ArraySize(dst_data); i++) {
       PrintFormat("コピー先配列:インデックス=%d, 値=%d",i,dst_data[i]);
   }
}


結果:
コピーされたサイズ=5
コピー先配列:インデックス=0, 値=11
コピー先配列:インデックス=1, 値=22
コピー先配列:インデックス=2, 値=33
コピー先配列:インデックス=3, 値=44
コピー先配列:インデックス=4, 値=55





スポンサーリンク



Copyright ©2015 MT4でEA自作しちゃお〜 All Rights Reserved.


Top

inserted by FC2 system