所以我创建了一个函数,它将两个数组及其长度作为输入,并将两个数组的元素放入一个新元素中,交替元素然后返回新数组。这是代码:
int* alt(int a1[], int n1, int a2[], int n2)
{
int n = n1 + n2, i, index=0;
int A[n];
if (n1>n2)
for (i=0; i<n; i++)
{
if (i%2==0 || index>=n2)
A[i] = a1[index];
else if (index<n2)
A[i] = a2[index];
index++;
}
else
for (i=0; i<n; i++)
{
if (i%2==1 || index>=n1)
{
A[i] = a2[index];
index++;
}
else if (index<n1)
A[i] = a1[index];
}
return A;
}
这就是我在main中调用函数的方式:
A=alt(A1, n1, A2, n2);
其中A声明为int *
然后我继续打印数组。但是在打印A时我得到了垃圾值。通过调试,函数似乎工作正常并返回正确的地址。任何想法可能是什么问题?
提前致谢。
编辑:虽然为什么in this example工作正常但我不明白?