title: returning NULL pointer in C
body: <p>I had some different answers on this question before, so decided to ask again here.</p>
  
  <p>Suppose I have a function <code>node* foo()</code> and if some fail accured, I do <code>return NULL</code>. Does this code really return <code>NULL</code> pointer? Or is this <code>NULL</code> a <code>local temporary object</code>? I have no warnings while I compile it. Moreother I can write something like this:</p>
  
  <pre><code>node* ptr = foo();
  if (ptr)
      printf("Not NULL");
  else
      printf("NULL");
  </code></pre>
  
  <p>And it seems like works. (but if this function is, for example <code>const string&amp; foo()</code> it doesn't)</p>