通过指针访问结构[E]

Bla*_*ary 2 c pointers pass-by-reference data-structures

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

aNode *rootA;
Run Code Online (Sandbox Code Playgroud)

在我的主要.现在我将**rootA发送到这样的函数

addElement(5,"Drew",&rootA);
Run Code Online (Sandbox Code Playgroud)

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

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

*rootA->age = 4;
Run Code Online (Sandbox Code Playgroud)

例如没有工作.

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

Jar*_*Par 6

从你的问题很难说,但它看起来像rootA最后一个样本的类型aNode**.如果是这样,它失败的原因是它->具有更高的优先级*.您需要使用paren来纠正此问题

(*rootA)->age = 4;
Run Code Online (Sandbox Code Playgroud)

请参阅完整的C运算符优先级表.

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

rootA->age = 4;
Run Code Online (Sandbox Code Playgroud)