Can I 'delete[]' a pointer that points into an allocated array, but not to the start of it?
<p>I'm wondering specifically about the following situation (which I discovered in some code I have to work with):</p>

<pre><code>SomeClass *ar = new SomeClass[2];
ar++;
delete[] ar;
</code></pre>

<p>This code seems to be working fine - i.e. not crashing (win32, built with VS2005).</p>

<p>Is this "legal"? It certainly doesn't feel right.</p>
