初始化具有结构

时间:2015-09-20 05:03:20

标签: c struct queue

错误 - 参数类型无效(错误的位置在我初始化队列的main函数中。)   我声明了一个Queue结构,它有两个指向另一个结构(称为Dataitem)。

    // list dataitem declaration
       struct dataitem{
       Cake cake;
       struct dataitem *next;
        };

       typedef struct dataitem Dataitem;
       typedef Dataitem *DataitemPtr;

      // Queue declaration
      struct queue{
      int countQ;
      Dataitem *headPtr;
      Dataitem * tailPtr;
      };
      typedef struct queue Queue;

我正在初始化main函数中的Queue,如下所示。这里发现错误。我能否知道为什么会出现这个错误?

      Queue q;
      q->headPtr=q->tailPtr = NULL;
      q.countQ=0;

1 个答案:

答案 0 :(得分:1)

您使用的语法错误。使用.代替->

  q.headPtr = q.tailPtr = NULL;

要访问对象的成员,您需要使用.运算符。 headPtr是指针的事实并不意味着您需要使用->运算符来访问q的成员。您需要使用->运算符来访问q.headPtr的成员。

 q.headPtr->next = NULL;