配列のコピー ArrayCopy 関数

関数

配列関数

ArrayCopy 関数

この関数は、配列を別の配列にコピーします。

配列は左から右にコピーされます。系列配列の場合、開始位置は、左から右にコピーするように調整してコピーされます。配列がそれ自体にコピーされた場合、結果は未定義です。

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

初期化が必要なオブジェクトを含むクラスと構造体の配列はコピーはできません。構造体の配列は、同じ型の配列にのみコピーができます。

静的配列と動的配列 (クラスと構造体のメンバーを除く) の場合、コピー先の配列のサイズは、コピーしたデータの量まで自動的に増加します (後者が配列のサイズを超える場合)。

データ型と構成・戻り値

bool ArrayCopy(①,②,③,④,⑤);

戻り値は、コピーした要素数を返します。

引数 [5]

ArrayCopy関数は 5個の引数で構成されます。


引数名データ型単位初期値説明
dst_array[]void&コピー先の配列。
src_array[]const void&コピー元の配列。
dst_startint0コピー先 配列の開始インデックス。
src_startint0コピー元 配列の開始インデックス。
countintWHOLE_ARRAYコピーする要素の数。「WHOLE_ARRAY」は配列全体がコピーされます。
※初期値があるものは省略可。但し、省略した引数以降は省略しなければなりません。

使用例

ArrayCopy関数による配列のコピー

コピー先の配列へコピー元の配列をそのままコピーします。

コード

// ArrayCopy関数による配列のコピー
#property strict
void OnInit() {

int d_arr[] ={1,2,3};          // コピー先の配列             
int s_arr[4]={16,31,19,3};     // コピー元の配列

int e=ArrayCopy(d_arr, s_arr); // コピー&ペースト

Print("コピー先の配列:{",d_arr[0],",",d_arr[1],",",d_arr[2],",",d_arr[3],"}");
Print("コピー元の配列:{",s_arr[0],",",s_arr[1],",",s_arr[2],",",s_arr[3],"}");
Print("コピーの要素数:",e," 個");
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果

元々、コピー先の配列にあった要素は消えてコピー元の要素で上書きされます。

タイトルとURLをコピーしました