私は配列を使ってcでデキューを実装しています。 leftとrightはデキューの左端と右端の要素を指すポインタです。 show()関数は、左右のポインタを受け取ります。私は、ボイドショー(int型*のL、int型* R)で次のようにしようとすると、関数はポインタ間の比較
int *t;
for(t=l;t<r;t++);
{
printf("%d-->",*t);
}
printf("%d\n",*t);
出力 - 間違っ生成しかし、私はこれをしようとすると、それは明らかにポインタ間の比較を
for(t=l,i=0;i<r-l;i++,t++)
printf("%d-->",(*t));
printf("%d\n",*r);
をWORKS-同じ配列のメンバを指しているにもかかわらず、最初のコードでは機能しません。
編集 - ここでは、全機能
void show(int *l,int *r)
{
if(l==r && r==NULL)
{
printf("underflow\n");
}
else
{
int *t,i;
for(t=l;t!=r;t++);
{
printf("%d-->",*t);
}
printf("%d\n",*r);
/* for(t=l,i=0;i<r-l;i++,t++)
printf("%d-->",(*t));
printf("%d\n",*r);*/
}
}
コメントアウト領域がショーに動作していない()です。 質問は閉じた、愚かなエラー!!! **あなたがここ1に対処するためのポイントを設定for(t=l;t<r;t++);
編集
@ NiklasB:左と右のポインタを指定すると、彼は循環バッファを実行しているように見えます。 –
@ジェリー:うん、それは意味があると思う。 –
'left'や' right'は表示されず、 'l'と' r'だけが表示されます。機能全体を表示すると役立ちます。 – Caleb