title: Expected expression before 'Node'
body: <p>I've been messing aroung with the linked list implementation in C and got stuck at this problem: why is it giving me <code>expected expression before 'Node'</code> in the following lines?:</p>
  
  <pre><code>Node *newNode1= malloc(sizeOf(Node));
  Node *newNode2= malloc(sizeOf(Node));
  Node *newNode3= malloc(sizeOf(Node));
  Node *newNode4= malloc(sizeOf(Node));
  </code></pre>
  
  <p>I've never seen such problems in C before. What went wrong ?
  <strong><code>Code</code></strong>:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  
  typedef struct Node_{
      int data;
      struct Node_ *next;
  }Node;
  
  void insertNodeBegin(Node **head, Node *newNode){
      if((*head)==NULL){
          (*head)-&gt;next = NULL;
          *head = newNode;
      }
      else{
          newNode-&gt;next = (*head)-&gt;next;
          (*head)-&gt;next = newNode;
      }
  }
  
  void printList(Node *head){
      Node *current = head;
      while(current != NULL){
          printf("%d ", current-&gt;data);
          current = current-&gt;next;
      }
  }
  
  int main()
  {
      Node *head = NULL;
  
      Node *newNode1= malloc(sizeOf(Node));
      newNode1-&gt;data = 12;
  
      Node *newNode2 = malloc(sizeOf(Node));
      newNode2-&gt;data = 16;
  
      Node *newNode3 = malloc(sizeOf(Node));
      newNode3-&gt;data = 55;
  
      Node *newNode4 = malloc(sizeOf(Node));
      newNode4-&gt;data = 8;
  
      insertNodeBegin(&amp;head, newNode1);
      insertNodeBegin(&amp;head, newNode2);
      insertNodeBegin(&amp;head, newNode3);
      insertNodeBegin(&amp;head, newNode4);
  
      printList(head);
  
      return 0;
  }
  </code></pre>