-1

次のコード行で、構造体または共用体ではない「前」にアクセスしようとすると、エラー エラーが発生します: *head->previous = newHead

理由はよくわかりません...どんな助けも大歓迎です。

`
struct ListNode
{
     int value;
     struct ListNode* next;
     struct ListNode* previous;
};

void insertAtHead(struct ListNode** head,int val)
{
     struct ListNode* newHead = malloc(sizeof(struct ListNode));
     newHead->value = val;
     newHead->next = NULL;
     newHead->previous = NULL;
     if(*head == NULL)
         *head = newHead;
     else
     {
         newHead->next = *head;
         *head->previous = newHead;
         *head = newHead;
     } 
}`
4

1 に答える 1

0

->演算子はよりも優先さ*ます。したがって、 *head->previousは としてグループ化され*(head->previous)ますが、これは必要なものではありません。括弧を使用:

(*head)->previous = newHead;
于 2013-04-16T05:24:49.747 に答える