こんにちは、サイズが定義されていない新しい配列の int の配列に結合しようとしています (最初の 2 つの配列によって異なります。しかし、コードを実行すると、無限ループにとどまるようです。何が間違っているのでしょうか? Ps. 配列-1 Ds に遭遇すると終了するはずです。
int
main (void) {
void join(int arr1[], int arr2[]);
int vectorA[11] = {8, 17, 29, 32, 33, 33, 77, 81, 90, 94, -1};
int vectorB[11] = {8, 17, 29, 44, 33, 33, 77, 81, 90, 94, -1};
join(vectorA, vectorB);
return 0;
}
void join(int arr1[], int arr2[])
{
int count=0, counter=0;
int i=0, j=0;
while(arr1[i]>-1)
count++;
while(arr2[j]>-1)
count++;
int tot[count];
for(i=0, j=0; ((arr1[i]>-1) || (arr2[j]>-1)); )
{
if(arr2[j]<0) {
tot[counter++]=arr1[i++];
}
else if(arr1[i]<0) {
tot[counter++]=arr2[j++];
}
else {
tot[counter++]=arr2[j++];
tot[counter++]=arr1[i++];
}
}
printf("the doubled array is : \n");
for(int i=0; i<count; i++)
{
printf("%d, ", tot[i]);
}
}