100分!结构体数组及其函数参数传递问题
结构体数组作为函数参数传递怎么做,又如何返回一个结构体数组指针呢?
#include <stdio.h>
struct point
{
int x;
int y;
char name[20];
}mypoint[2]={0};//结构体数组默认值为0
(point*) f(mypoint) //将结构体数组作为参数传值,输出结构体类型指针
{
point (*p)[2]=mypoint;
p[0]->x=1;
p[0]->y=2;
for(int i=0;i<20;i++)p[0]->name[i]='a';
return p;
}
void main()
{
//利用返回指针输出
point (*p2)[2] = mypoint;f(mypoint);
printf("%d%d",(p2->mypoint[0]).x,(p2->mypoint[0]).y);
//如何直接输出?
printf("%d%d",mypoint[0].x,mypoint[0]).y);
}
关于直接输出部分
我搜了一下,看到有人这样
----------------------------------------------
把那数组做为全局变量,引用时取首地址
就可以不用返回了
例
typedef struct
{...
}a abc[100];
函数:
void func(&abc)
{
...
}
若一定要返回值,则可以返回指针
---------------------------------------------------
我仿了一个,但func(&abc)处 的&abc好像也报错了
如何解决,头疼啊,想了一个晚上了