title: calloc sometimes gives double the amount of memory asked
body: <p>I came across something I don't understand why and I'd like to hear an explanation about it.
  I have this struct:</p>
  <pre><code>typedef struct Student {
      int age;
      char *name;
  } Student;
  
  int main()
  {
      Student **test1 = calloc(2, sizeof(*test1));
      Student **test2 = calloc(2, sizeof(**test2));
      return 0;
  }
  </code></pre>
  <p>I've noticed that test1 gets 2 memory allocations (as it should) while test2 gets 4. Why is that and which is the correct usage? I assume its the first one but i'm not sure why.</p>
  <p>Thanks!</p>