如何用结构体指针引用结构体中的数组成员?

snowflame 2009-10-28 04:27:42
形如:
typedef struct {
int x;
int y;
}COOR;

typedef struct {
COOR co[2];
}strint;

void main(void)
{
strint aaa, bbb, *pa, *pb;
aaa.co[0].x = 1;
bbb.co[0].x = 2;
pa = &aaa;
pb = &bbb;
pa->co[0].x = pb->co[0].x + 1; // 出错了!!!
}

请高手帮忙讲解一下结构体指针的用法,谢谢!
...全文
645 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
snowflame 2009-10-28
  • 打赏
  • 举报
回复
好的,谢谢,我再试试:)
cxxer 2009-10-28
  • 打赏
  • 举报
回复

#define DataType int

typedef struct _node
{
DataType data;
struct _node * lchild, * rchild;
}node, *pnode;


可以的,二叉链表可以存储树.
xkyx_cn 2009-10-28
  • 打赏
  • 举报
回复

typedef struct TREE{
int node;
struct TREE *child;
}TREE;
xkyx_cn 2009-10-28
  • 打赏
  • 举报
回复

typedef struct TREE{
int node;
struct TREE *child;
}TREE;
snowflame 2009-10-28
  • 打赏
  • 举报
回复
这样定义可以通过,但
TREE a,b,*pTree;

*pTree = &a;

void preorder(TREE *pTree)
{
visit(pTree);
pTree = pTree->child;
}

出错了,error: #513: a value of type "struct TREE *" cannot be assigned to an entity of type "TREE *"
谢谢!
xkyx_cn 2009-10-28
  • 打赏
  • 举报
回复
可行,这就是最好的办法了
snowflame 2009-10-28
  • 打赏
  • 举报
回复
谢谢,是我没写清楚。
typedef struct {
int x;
int y;
}COOR;

typedef struct {
COOR co[2];
void *child;
}strint;

void main(void)
{
strint aaa, bbb, *pa, *pb;
aaa.co[0].x = 1;
bbb.co[0].x = 2;

pa = &aaa;
pb = &bbb;
pa->child = pb;

pa->co[0].x = pa->child->co[0].x + 1; // 出错了!!!
}

各位,我想问的其实是树的递归定义的问题,
形如:
typedef struct {
int node;
struct TREE *child;
}TREE;
是否可行,有什么好的办法,谢谢!
ljz888666555 2009-10-28
  • 打赏
  • 举报
回复
没错,
pur_e 2009-10-28
  • 打赏
  • 举报
回复
我用vc 6.0编译的没报错

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧