请问怎么将结构体数组赋给指向结构体数组的指针

dirtyduck 2004-04-29 03:23:23
例如:
怎么将info struct[5];
通过函数参数传递的形式传给
void fun(info *struct[5])
...全文
216 9 点赞 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
EternalBlue 2004-04-29
想一下:
void fun(char *p);
调用时:
char a[5] ={0};
fun(a);
------------------------
结构的调用也一样:
void fun(info *pInfo);
调用时
info theInfo[5];
//......初始化theInfo
fun(theInfo);
  • 打赏
  • 举报
回复
RedTear1021 2004-04-29
void fun(info *struct[5])
我想改为
void fun(info [], int size)
这是函数原型
函数定义
void fun(info struct, 5)
{
.........
}
  • 打赏
  • 举报
回复
p_s_w 2004-04-29
明白楼主的意思,下面是一个示例:
struct T
{
int x, y;
};

int Func( T (*p)[3] )
{
p[0][0].x = 11;
return 1;
}

main()
{
T t[3];
Func( &t );
return 1;
}

这是数组的一种比较少见的用法,对数组取址,得到指向数组的指针,而不是指向数组元素的指针。
  • 打赏
  • 举报
回复
liem 2004-04-29
数组作形参的二种形式:
type f(type1 *...)
type f(type1 [])//方括号内不能有N
  • 打赏
  • 举报
回复
antijpn 2004-04-29
函数声明的时候参数表里面可以写成
void fun(info infoArray[]);
或者
void fun(info *pinfo);
  • 打赏
  • 举报
回复
sharkhuang 2004-04-29
和是不是结构没有关系!你的int[]怎么用就怎么用
  • 打赏
  • 举报
回复
antijpn 2004-04-29
直接传就行了吧?就和内置的类型一样
不过你给的代码我怎么看不懂啊?struct是关键字不能作为数组名

如果你需要穿参数的话,这样应该就可以了
info mystruct[5];
fun(mystruct);
  • 打赏
  • 举报
回复
wbh0360 2004-04-29
void fun(info *struct[5]) 应改成void fun(info struct[])吧

然后调用fun(struct)
  • 打赏
  • 举报
回复
dirtyduck 2004-04-29
怎么没人回答啊,只好自己顶下先。
  • 打赏
  • 举报
回复
相关推荐
发帖
C++ 语言
加入

6.0w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
申请成为版主
帖子事件
创建了帖子
2004-04-29 03:23
社区公告
暂无公告