title: a problem with pointers in C
body: <p>I have never been good at playing with pointers in C. But this time I would like to ask for your help to resolve my problems with pointers. 
  I have a function here to push a value into a stack.</p>
  
  <pre><code>void StackPush(stackT *stackPtr, stackElementT element){
  
   stackNodeT* node = (stackNodeT *) malloc(sizeof(stackNodeT));  
  
   if (node == NULL){
    fprintf(stderr, "Malloc failed\n");
    exit(1);
   } else {                                   
    node-&gt;element = element;
    node-&gt;next = StackEmpty(stackPtr)? NULL : *stackPtr; 
    *stackPtr = node;
   }
  }
  </code></pre>
  
  <p>If I change the last line to stackPtr = &node; this function does not work. My question is why? What's the difference between *stackPtr = node; and stackPtr = &node; ?</p>
  
  <p>Any help would be appreciated. </p>