1

C でジェネリック キューを作成していますが、タイトルにエラーが表示されます。私の Queue.c ファイルの関数は、初期化されたポインターを受け取ることを目的としています。

ここに私の構造体コードがあります:

struct QueueNode {

   struct QueueNode *prev;
   struct QueueNode *next;

};

typedef struct QueueNode QNode;

struct Queue {

    QNode front;
    QNode rear;
};

typedef struct Queue Q;

次に、Queue init 関数でエラーが発生します。これが私の機能です:

void Q_Init(Q* const pointerQ){

    assert (pointerQ != NULL);   

    pointerQ.front->prev = NULL;
    pointerQ.front->next= pointerQ.rear;
    pointerQ.rear->prev = pointerQ.front;
    pointerQ.rear->prev = NULL;
}

なぜエラーが発生するのか完全にはわかりません。Queue にはポインターではなく Node メンバーがあるため、pointerQ.front/rear を使用してそれらにアクセスし、Node にはポインター メンバーがあるため、->next/rear を使用する必要があると考えました。

どんな助けでも大歓迎です!

前もって感謝します!

4

3 に答える 3