そのため、キュー viz に挿入する関数を作成しましたen_queue
。関数本体は次のとおりです。
void en_queue(queue,max,front,rear)
{
int ch1;
printf("\n Enter element to add->");
scanf("%d",&ch1);
if(front==0 && rear==(max-1))
{
printf("\n Caution!! Queue Overflow!!");
}
else if(rear==(max-1) && front>0)
{
rear=0;
*queue[rear]=ch1;
}
else if(front==-1 && rear==-1)
{
front=rear=0;
*queue[rear]=0;
}
else
{
rear++;
*queue[rear]=ch1;
}
}
プロトタイプ宣言は次のとおりです。
void en_queue(int *,int, int, int);
そして、呼び出し中に、次のように呼び出しました:
en_queue(queue,MAX,front,rear);
ここqueue[MAX]
で、 は配列 ( #define MAX 10
)、MAX
は配列に組み込むことができる要素の数、front
とrear
は現在の値を持つ整数です-1
。type error: pointer expected
とのエラーが繰り返されますConflicting argument declarations for function 'en_queue'.
引数が一致しない理由がわかりません。配列のアドレスを渡し、それをポインター変数で受け取り、ポインターを操作したためです。では、どのようにエラーが発生するのでしょうか?