title: pointer to struct - a few questions
body: <pre><code>#include&lt;stdio.h&gt;
  #include&lt;stdlib.h&gt;
  
  /* Link list node */
  struct node
  {
      int data;
      struct node *next;
  };
  
  /* Function to reverse the linked list */
  static void reverse(struct node** head_ref)
  {
      struct node *prev   = NULL;
      struct node *current = *head_ref;
      struct node *next;
      while (current != NULL)
      {
          next  = current-&gt;next; 
          current-&gt;next = prev;  
          prev = current;
          current = next;
      }
      *head_ref = prev;
  }
  </code></pre>
  
  <ol>
  <li>What are the lines that start with struct in the reverse function responsible of?
  do they extend the original struct or creating new structs  that the original struct pointing to? I don't really understand why there is no name to the original struct</li>
  <li>Is there a diffrence between  <code>struct node *next;</code> and <code>struct node* next;</code>  ?</li>
  </ol>