通过指针访问结构

时间:2016-11-11 18:11:42

标签: c pointers struct

我正在处理链接列表。我无法通过指针访问结构中包含的数据。这是我的代码:

void insertNode(Node **head, int num) {
    Node *newNode = malloc(sizeof(Node));
    newNode -> num = num;

    while (head->next) {    <-----problematic code


    }

}

我已将列表头指针的地址传递给函数。

Node *list = malloc(arraySize * sizeof(Node));
Node *head = list;
insertNode(&head, randNum); 

我一直收到一条错误消息“&#34;请求会员&#34;接下来&#34;在某种结构或联合的东西中。

2 个答案:

答案 0 :(得分:4)

Node **head是指向Node指针的指针。所以head->取消引用指向指针的指针,因此会给你一个指针。指针不是结构或联合,因此是错误。您可以使用:

(*head)-> 

取消引用基础节点。

答案 1 :(得分:2)

在循环中尝试(*head)->next

原因很简单,您发送Node**但希望它会像Node*一样工作,这是不正确的。