title: What does int **p in mean?
body: <p>I understand that we use this when we need to give a pointer to an array of pointers in the dynamic memory but what I don't understand is that how this works in the stack. </p>
  
  <p>Does this make an array of pointers in the stack too that is pointing to the array of pointers in the heap or does it make a single pointer in the stack that is pointing to the array of pointers in the heap? if yes, then what is the difference between </p>
  
  <pre><code>int **p = new int*[100]
  </code></pre>
  
  <p>and </p>
  
  <pre><code>int *p = new int[100]
  </code></pre>
  
  <p>Thanks in advance. I have been trying to understand this for a long time now and have read a lot of documentation online but I still don't understand this.</p>