operator newを書くなら、operator delete も書こう 10項
これはnew/deleteの実装をしたことがある人ならすぐ分かると思う。
newで割り当てられたメモリは、サイズとポインタという情報を持っていなければならず、deleteではその情報を元にメモリを解放する。
newから返るのは、ポインタだけなので、サイズ情報が別の場所に格納されているということになる。
たとえば実装例としては、割り当てるメモリ領域を多めにして、ヘッダ情報を付加したりする場合があります。
つまり、newの裏では実装依存で他の情報を保持しているので、別のdeleteで解放することはできないわけです。
Effective C++ 【改訂第2版】 アスキーアジソンウェスレイシリーズ―Ascii Addison Wesley programming seriesを1項ずつ読んでいます。