Declaration of typedef with pointer
<p>Learning the particularities of the C ANSI language this weekend and quite a challenge.</p>

<p>In an exercise I've got a header file that has a few declarations of signature of functions.</p>

<p>This one caught my attention: </p>

<pre><code>typedef struct image * Image;
</code></pre>

<p>I tried this on my .c file : </p>

<pre><code>typedef struct {
    char nbrMagique[10];
    unsigned long imgLarg;
    unsigned long imgHaut;
    unsigned long imgSeuilMax;
    unsigned long **imageMatrice;
} Image;
</code></pre>

<p>But keep on constantly having error while compiling: </p>

<pre><code>imagePGM.c:22:3: erreur: conflicting types for ‘Image’
 } Image;
</code></pre>

<p>So I guess since I can't redefine the struct in the .c file and I can't touch the header either.</p>

<p>And to respect the "typedef struct image * Image;" in the .h header file I've got to create a dynamic 2 dimension table and point the pointer *image to it?</p>

<p>Am I missing out something in my reflexion?</p>

<p>But what does the pointer * in the signature of the typdef mean in the one of the .h file?</p>