2013-07-20 17 views
16

配列がa[3]={1,2,5}となっています。別の配列a2[2]={2,5}を作成する必要があります。Cの配列からサブ配列を作成する最適な方法

私が試したことは、新しい配列a2[]を作成し、必要な位置範囲からすべての要素をコピーすることです。

Cでこれを達成する他の方法はありますか?代わりに、二番目の配列を持つことの

答えて

20
memcpy(a2, &a[1], 2*sizeof(*a)); 
+0

memcpy(&a2、&a [1]、2 * sizeof(* a)); –

+0

いいえ、a2はすでに配列へのポインタですが、[i]は数字です。 –

13

は、単にポインタを使用します。

int a[3]={1,2,5}; 
int *p = &a[1]; 

彼らは別個のものでなければならない場合、あなたは新しい配列に配列要素をコピーする以外に選択肢がありません。

関連する問題