title: Dynamic memory allocation across programming languages
body: <p>I have a question regarding dynamic memory allocation.</p>
  
  <p>When it comes to <strong>C</strong>, memory is allocated using the functions <em>malloc()</em>, <em>calloc()</em> and <em>realloc()</em> and de-allocated using <em>free()</em>.</p>
  
  <p>However in objected oriented languages like <strong>C++</strong>,<strong>C#</strong> and <strong>Java</strong>, memory is dynamically allocated using the <em>new</em> and deallocated using <em>delete</em> keywords (operators) in case of <strong>C++</strong>.</p>
  
  <p>My question is, <strong>why are there operators instead of functions for these objected oriented languages for dynamic memory allocation?</strong> Even when using new, finally a pointer is returned to the class object reference during allocation, just like a function.</p>
  
  <p><strong>Is this done only to simplify the syntax?</strong> Or is there a more profound reason? </p>