函数创建和返回数组无法正常工作

时间:2015-04-06 17:20:29

标签: c arrays function

所以我创建了一个函数,它将两个数组及其长度作为输入,并将两个数组的元素放入一个新元素中,交替元素然后返回新数组。这是代码:

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工作正常但我不明白?

0 个答案:

没有答案