通过指针访问结构[E]

时间:2010-04-01 00:24:46

标签: c data-structures pointers pass-by-reference

我有一个名字和年龄的结构。 我已经创建了这些结构的链表,使用它作为指针:

aNode *rootA;

在我的主要。 现在我将** rootA发送到类似的函数

addElement(5,"Drew",&rootA);

因为我需要通过引用传递rootA,以便我可以在其他函数中编辑它(在我的实际程序中我有两个根,所以返回将不起作用)

问题是,在我的程序中,我不能说访问结构成员。

*rootA->age = 4;
例如,

无效。

希望你们能帮助我。 谢谢!

2 个答案:

答案 0 :(得分:6)

很难从您的问题中看出,但最后一个示例中rootA的类型似乎是aNode**。如果是这样,它失败的原因是->的优先级高于*。您需要使用paren来纠正此问题

(*rootA)->age = 4;

查看完整C Operator Precedence Table

如果rootA的类型是aNode*。然后除了使用->之外,您不需要取消引用。而是直接使用->

rootA->age = 4;

答案 1 :(得分:0)

我怀疑你需要传递一个指向rootA变量的指针,而不是两次取消引用它。

addElement(5,"Drew",&rootA);