在C中,是否不可能使返回类型成为数组?我开始学习操作系统课程中的指针,并且需要创建一个以2个数组为参数的函数,并返回一个只包含两个参数数组中的元素的数组。函数返回一个数组(用C语言编写的Win32控制台应用程序,了解操作系统)
这是我到目前为止有我的C函数返回一个数组:
#include <stdio.h>
main()
{
printf("Hello world");
int array1[4] = {1, 2, 3, 4};
int array2[4] = {3, 4, 5, 6};
int* inter = intersection(array1, array2);
printf(inter); // <-- also, I don't know how I could get this to work for testing
//freezes program so it doesn't terminate immediately upon running:
getchar();
}
int* intersection(int array1[], int array2[])
{
int arrayReturn[sizeof(array1) + sizeof(array2)];
int count = 0;
for(int i = 0; i < 4; i++)
{
for(int j = 0; j < 4; j++)
{
if(array1[i]==array2[j])
{
arrayReturn[count] = array1[i];
count = count + 1;
}
}
}
return arrayReturn;
}
另一个问题我已经是我怎么能在main()方法测试此函数使用printf()的声明?
我需要这样做的原因是因为我们正在学习进程和内存分配,指针在操作系统开发中扮演着重要的角色。我的教授告诉我,指针是很难理解的,他们留下许多编程语言的指针。
作为次要的补充:当结果数组空间不足时返回''返回结果;'从'intersection()'返回是有价值的,而不是返回任何内容。 – Simon 2013-02-21 01:16:37
有效点,我太快了。代码按建议更新 – 2013-02-21 01:26:00