2つの配列を1つにマージしたいと思います。例:
- A1 = 1,1
- A2 = 2,2
- 次にA3=1,2,1,2
例えば:
- A1 = 1
- A2 = 2,2,2,2
- 次にA3=1,2,2,2,2
例えば:
- A1 = 1,1,1,1
- A2 = 2,2
- 次にA3=1,2,1,2,1,1
最後の例では、コードを実行すると、1,2,1,2,1,20が得られました。
最後から2番目に、私は1,2,32767,2,2を取得しました。
だから私は間違ったコードを持っていると思います。短い配列の要素を取り終えた直後に、A3の残りすべてを長い方で埋めます。しかし、その理由がわかりませんでした—助けてくれませんか?
コード:
int *p3=arr3; //arr3 is A3 for example, arr1 = A1..etc, all sizes are defined
int index;
int index1=0;
int index2=0;
for(index = 0; index< sizeofArr3 ; index++)
{
if(index%2==0)
{
if(index1<=sizeofArr1)
*(p3++) = arr1[index1++];
else
*(p3++) = arr2[index2++];
}
else
{
if(index2<=sizeofArr2)
*(p3++) = arr2[index2++];
else
*(p3++) = arr1[index1++];
}
}