title: Error: member reference base type '*****' (aka '*****') is not a structure or union
body: <p>When I try to access to my structure in a function where I pass it through reference, the compiler shows this error:</p>
  
  <pre><code>error: member reference base type 'Pila' (aka 'struct tipoCelda *') is not a structure or union
          **p = p-&gt;sig;**
  </code></pre>
  
  <p>Here it is the prototype of the structure in the header file:</p>
  
  <pre><code>typedef int tipoElemento;
  
  typedef struct tipoCelda { 
      tipoElemento elemento; 
      struct tipoCelda * sig; 
      } tipoCelda;
  
  typedef tipoCelda * Pila;
  </code></pre>
  
  <p>And this is the function where I get the error :</p>
  
  <pre><code>tipoElemento pilaSuprime (Pila *p){
  
      tipoElemento borrado;
  
      if (pilaVacia(p) == 1)
          printf ("\n\nNO SE PUEDE BORRAR.La pila esta vacia\n");
      else{
          borrado = p-&gt;elemento;
  
          p-&gt;elemento = 0;
          p = p-&gt;sig;
      }
  
      return borrado;
  }
  </code></pre>
  
  <p>I get the message due to these 3 lines:</p>
  
  <pre><code>borrado = p-&gt;elemento;
  
              p-&gt;elemento = 0;
              p = p-&gt;sig;
  </code></pre>
  
  <p>I declare the stack in main and then call the function:</p>
  
  <pre><code>Pila variablePila;
  
  //////OTHER ACTIONS//////
  
  pilaSuprime(variablePila)
  </code></pre>
  
  <p>I am trying to delete a node of a linked list that acts like a stack but I can´t compile it.</p>