私はリンクリストを使用しています。私はこの線に沿って何かをする必要がありstruct要素とcの整数を比較します
// List element: a list is a chain of these
typedef struct element
{
int val;
struct element* next;
} element_t;
// List header - keep track of the first and last list elements
typedef struct list
{
element_t* head;
element_t* tail;
} list_t;
:
int i = 5;
if(*(list->tail) == i){
//do something;
}
私は*(list->tail)
はポインタを逆参照し、リストの最後の要素を返すことを知っているこれらは、私が働いている構造体ですしかし、私はこのエラーを取得しておいてください。
error: invalid operands to binary expression ('element_t' (aka 'struct element') and 'int')
if(*(list->tail) != i){
私はint型に構造体を比較すると、無効であることを認識しています。私の質問は以下のとおりです。
はなぜ間接参照ポインタを比較する
printf("%i",*(list->tail))
はそれをプリントアウトしていても、動作しませんか?これはちょうど 'C'の作品ですか?方法はありますか?
私はこの質問はhereに答えてきたことを理解し、私はかなり彼らはint型に構造体変数を比較しているか理解していません。前もって感謝します。
あなたは 'list-> tail-> val'を意味しませんでしたか? – Frank
[構造要素とintとの比較]の可能な複製(https://stackoverflow.com/questions/16764024/comparing-structure-element-to-int) – Olaf
リンゴとオレンジを比較している理由は、 > tail'、ポインタで、特定の値を持つ?おそらく値を求めたい場合は、 'list-> tail-> val' – Jack