不确定在这里使用什么类型的数据类型

时间:2013-03-16 03:58:40

标签: c pointers

我必须使用的功能如下所示:

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。 你可能会对此有所了解。非常感谢。

谢谢

2 个答案:

答案 0 :(得分:5)

使用时:

pushNode(*head, tempO);

取消引用 head,将struct onode *变为struct onode
你想取其地址,这可以说是解除引用的对立面:

pushNode(&head, tempO);

将其地址从struct onode *转换为struct onode **

答案 1 :(得分:1)

尝试改为pushNode(&head,tempO);

作为指针指针的指针的地址,即struct node **