title: Two arguments to calloc
body: <p>Why does <code>calloc</code> take two arguments instead of one like <code>malloc</code>?</p>
  
  <p>Specifically, since there is no difference between (or is there?) between the following expressions:</p>
  
  <pre><code>calloc (a, b);
  calloc (b, a);
  calloc (a * b, 1);
  calloc (1, a * b);
  </code></pre>
  
  <p>why not just accept the total number of bytes to allocate? What is the rationale behind this interface? And why does this not apply to malloc?</p>