title: dynamically allocating 3d array
body: <p>I'm a little confused about dynamically allocating a 3d array. Right now, I'm just allocating one big block of memory like so:</p>
  
  <pre><code>int height = 10;
  int depth = 20;
  int width = 5;
  
  int* arr;
  arr = new int[height * width * depth];
  </code></pre>
  
  <p>Now I'd like to change a value in the 3D array, say:</p>
  
  <pre><code>//arr[depth][width][height]
  arr[6][3][7] = 4;
  </code></pre>
  
  <p>However, I can't use the above code to change the value. How can I use a single index to access the element at position depth = 6, width = 3, height = 7?</p>
  
  <pre><code>arr[?] = 4;
  </code></pre>
  
  <p>Is there a better way to dynamically allocate a 3D array?</p>