title: Can I use `operator delete[]` for a single element array allocation?
body: <p>If we allocate an object of size 1 as below</p>
  
  <pre><code>int *arr = new int[1];
  </code></pre>
  
  <p>Should we delete the object using <code>operator delete[]</code> or <code>operator delete</code>?</p>
  
  <p>The reason I am concerned is if the compiler would be smart enough to convert the statement as a single element allocation <code>int *arr = new int</code> which would cause calling <code>operator delete[]</code> UB.</p>
  
  <p>User Case:</p>
  
  <p>I have a pointer, which I would end up allocation in a varied ways but would finally like to get it deleted. So was wondering, for single element allocation, if I consistently use <code>int *arr = new int[1]</code> can I consistently and safely use <code>operator delete[]</code></p>
  
  <p><strong>Note</strong></p>
  
  <p>Can you please refer me back to the standards to support your answer?</p>