title: Accessing a std::array via a unique_ptr
body: <p>This is just for learning purposes, I know I can just use a vector but I have</p>
  
  <pre><code>const int N = 1e3;
  auto my_arr = std::make_unique&lt;std::array&lt;int, N&gt;&gt;();
  
  // To access it I have to do this - why [0][0] twice?
  my_arr.get()[0][0] = 1;
  
  // Getting the size for fun
  std::cout &lt;&lt; sizeof(my_arr.get()) &lt;&lt; "\n"; // outputs 8
  std::cout &lt;&lt; sizeof(my_arr.get()[0]) &lt;&lt; "\n"; // outputs 800000000
  std::cout &lt;&lt; sizeof(my_arr.get()[0][0]) &lt;&lt; "\n"; // outputs 8
  </code></pre>
  
  <p>I understand that .get() returns a pointer to the managed object but I don't understand why I need to do <code>my_arr.get()[0][0]</code> twice?</p>