![ArrayCopy](https://celebpanda.com/wp/wp-content/uploads/2021/05/ArrayCopy.jpg)
配列を別の配列へコピーします
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 | コピーする要素数。 省略した場合は全要素コピーされます。 |
- 戻り値
コピーされた要素数を返します
- その他
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]);
}
}