ArrayCopy()関数は、指定した配列を他の配列にコピーするために使用します。
ArrayCopy()関数は、以下のように定義されています。
int ArrayCopy(
void& dst_array[],
const void& src_array[],
int dst_start=0,
int src_start=0,
int count=WHOLE_ARRAY
);
各引数の意味は、以下のとおりです。
- void& dst_array[]
コピー先の配列の配列名を指定します。 - const void& src_array[]
コピー元の配列の配列名を指定します。 - int dst_start
コピー先の配列における、コピーされる要素のインデックスの開始位置を指定します。
標準では、「0」からコピーされます。 - int src_start
コピー元の配列における、コピーする要素のインデックスの開始位置を指定します。
標準では、「0」からコピーを開始します。 - int count
コピーする要素の数を指定します。
標準では、すべての要素がコピーされます。
戻り値
コピーされた要素の数を返します。
注意点
第五引数の「count」の値が「0」以下、又は、コピー元の配列のサイズよりも大きい場合は、すべての要素がコピーされます。
配列は、「左から右へ」(=インデックスが若いものから順に)コピーされます。したがって、時系列配列の場合は、コピー開始位置を調整する必要があります。
コピー元の配列とコピー先の配列とを同一にしてArrayCopy()関数を実行した場合の結果は定義されていません。
コピー元の配列の型とコピー先の配列の型が異なる場合は、ArrayCopy()関数は、コピー元の配列の要素の型を、コピー先の要素の型に変換しようと試みます。
string型の配列は、string型の配列に対してのみ、コピーすることができます。
初期化を必要とするオブジェクトを含むクラスや構造体の配列は、コピー元の配列とすることができません。
構造体の配列は、同じ型の配列に対してのみコピーされることができます。
クラスや構造体のメンバーを除く静的・動的配列の場合、コピー先の配列のサイズは、自動的にコピー元の配列のデータ量まで増加されます。