Я использую '->', но вывод все еще спрашивает меня, не собираюсь ли я использовать '->' - PullRequest
1 голос
/ 30 октября 2019

Я пытаюсь создать функциональность Single-Linked List в C, но у меня проблема с доступом к следующему узлу моего Head-узла.

typedef struct node {
  struct node *next;
} Node;

int foo(Node **head){
  *head = *head->next;
}

Когда я запускаю этот код, я ожидаю, что он изменит адрес моего указателя главного узла на следующий узел, но вместо этого я получаю следующую ошибку:

‘*head’ is a pointer; did you mean to use ‘->’?
     *head = *head->next;

1 Ответ

2 голосов
/ 30 октября 2019

Строка внутри foo должна быть

     *head = (*head)->next

, потому что '->' имеет более высокий приоритет, чем *

Подробнее о приоритетах операторов можно узнать здесь (https://en.cppreference.com/w/cpp/language/operator_precedence)

...