C言語での構造体
C言語で、
キュー構造を作りたいのですが、うまくできません。
途中まで作ったのですが、うまく動きませんでした。
EnqueueやDequeueでデータの出し入れをするのですが、そのままではデータを取り出したときにデータが先頭に来ないので、refreshで先頭に持ってくるようにプログラムを組みました。
-----------------------------------------------------
#include<stdio.h>
#define MAXQUEUE 10
typedef struct queue{
int head, tail;
char entry[MAXQUEUE];
} Queue;
//キュー構造にデータを入れる。
void Enqueue(char item,Queue *q){
q->entry[q->tail]=item;
q->tail++;
}
//キュー構造からデータを取り出す。
void Dequeue(char *item,Queue *q){
*item=q->entry[q->head];
q->head++;
}
//キュー構造内のデータを先頭にずらす。
void refresh(Queue *q){
while(q->head==0){
q->entry[q->head-1]=q->entry[q->head];
q->head--;
q->tail--;
}
}
void main(){
Queue qu;
Enqueue('w1',&qu);
Enqueue('w2',&qu);
Enqueue('w3',&qu);
Enqueue('w4',&qu);
Dequeue(&qu,&qu);
Dequeue(&qu,&qu);
refresh(&qu);
}
----------------------------------------------------------------
mainからEnqueueやDequeueを呼び出すときに、引数として何を渡せばいいのでしょうか?構造体をそのまま渡してみたのですが、「error C2664: 'Dequeue' : 1 番目の引数を 'Queue *' から 'char *' に変換できません。(新しい機能 ; ヘルプを参照)
指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。」というエラーを吐いてしまいます。
分かりづらい説明で申し訳御座いませんが、ご回答宜しくお願いいたします。