why i the pointer is not a structure or union? : <pre><code>#include &lt;stdio.h&gt;

struct m_tag {
    short m_tag_id;
    short m_tag_len;
    int   m_tag_cookie;
};
struct packet_tags {
    struct m_tag *slh_first;
}tags;

#define SFIRST(head) ((head).slh_first)
int main(void) {
    printf("%p\n", SFIRST(&amp;tags));
    return 0;
}
</code></pre>

<p>In function 'main':
error: request for member 'slh_first' in something not a structure or union </p>

<p>what is the problem with this code?</p>
