title: Array of pointers initialization
body: <pre><code> char **arr;
   arr = (char **)calloc(1,sizeof(char*));
  
   for(i = 0; i&lt; 16; i++)
      if(arr[i] = (char *)calloc(1, 2*sizeof(char)) == NULL)
          perror("Memory cannot be allocated to arr[i]", %d);
  </code></pre>
  
  <p>The above code throws an error inside the for loop, when i am trying to allocate memory to arr[i]. Is anything wrong with this allocation. Essentially, i want to  store  16 strings of length 2. I've tried it with array of pointers too (char *arr[16]). I have tried looking for resources on double pointer initializations using malloc() and calloc() and couldn't find many . If you could point out some links, that would be greatly appreciated. 
  Thanks.</p>