如何在C中将数组从函数传递给main?
#include<stdio.h>
int merge(int a[],int b[])
{
int i=0;
int j=0;
int k=0;
int c[17];
while(i<10&&j<8)
{
if(a[i]<b[j])
{
c[k]=a[i];
i++;
}
else
{
c[k]=b[j];
j++;
}
k++;
}
while(i<10)
{
c[k]=a[i];
i++;
k++;
}
while(j<10)
{
c[k]=b[j];
j++;
k++;
}
return c;
}
答案 0 :(得分:2)
一种解决方案是采用三个数组参数:
void merge(int a[], int b[], int c[]);
然后,您可以合并a
和b
,并将结果放入c
。调用该函数的人负责创建用作c
的数组足够大。
答案 1 :(得分:1)
如果您希望函数返回数组,有两种方法:
int *merge(int a[], int b[])
。int merge(int A[], int B[], int C[])
。答案 2 :(得分:1)
以下是三个想法......
struct
,因此您可以这样做。int x[3]; return x;
将返回x.
的地址如果它是静态的或malloc编辑的那就没关系,但是如果它是普通的自动存储类本地则会丢失。
无论你做什么,你都应该malloc(3)
函数中的对象,或者至少使它成为静态。