title: overloading "new" operator
body: <p>While I was defining the working of an overloaded new operator declared in a class,
  I came across following confusion....</p>
  
  <ol>
  <li>HERE ,the return type of the function is 'void',yet I
  have to introduce a return statement.....otherwise my program crashes....why so?</li>
  <li><p>What is meant by "void *p"</p>
  
  <pre><code>void *myclass::operator new(size_t size)
  {
  void *p;
  p=malloc(size);
  cout&lt;&lt;"IN overloaded new";
  if(!p)
  {
    bad_alloc ba;
    throw ba;
   }  
  return p;
  }
  </code></pre>
  
  <p>to the point clarifications are appreciated.</p></li>
  </ol>