1

我必须使用一个如下所示的函数:

void pushNode (struct onode** head, struct onode* node) ;

我试着用这个:

struct onode *head = NULL;
head=malloc(sizeof(struct onode));

struct onode *tempO;

pushNode(*head,tempO);

我在终端中收到此错误:

expected ‘struct onode **’ but argument is of type ‘struct onode’

我不知道该放什么而不是*head. 您可以对此有所了解的任何信息将不胜感激。

谢谢

4

2 回答 2

5

当您使用:

pushNode(*head, tempO);

取消引用 head,将struct onode *变成struct onode.
你想取它的地址,这可以说是解引用的反面:

pushNode(&head, tempO);

获取它的地址会使它从 astruct onode *变成 a struct onode **

于 2013-03-16T04:00:25.240 回答
1

试着把pushNode(&head,tempO);

指针的地址,即指向指针的指针,即struct node **

于 2013-03-16T04:01:47.843 回答