我有一个名字和年龄的结构。 我已经创建了这些结构的链表,使用它作为指针:
aNode *rootA;
在我的主要。 现在我将** rootA发送到类似的函数
addElement(5,"Drew",&rootA);
因为我需要通过引用传递rootA,以便我可以在其他函数中编辑它(在我的实际程序中我有两个根,所以返回将不起作用)
问题是,在我的程序中,我不能说访问结构成员。
*rootA->age = 4;
例如,无效。
希望你们能帮助我。 谢谢!
答案 0 :(得分:6)
很难从您的问题中看出,但最后一个示例中rootA
的类型似乎是aNode**
。如果是这样,它失败的原因是->
的优先级高于*
。您需要使用paren来纠正此问题
(*rootA)->age = 4;
查看完整C Operator Precedence Table。
如果rootA
的类型是aNode*
。然后除了使用->
之外,您不需要取消引用。而是直接使用->
rootA->age = 4;
答案 1 :(得分:0)
我怀疑你需要传递一个指向rootA
变量的指针,而不是两次取消引用它。
addElement(5,"Drew",&rootA);