質問です。
operator new と operator new[] をオーバーライドしているのですが、
char *p = new char [4];
が
とあるクラスの中ではoperator new に飛び、
とあるクラスの中ではoperator new[] に飛びます。
特に不具合は起きていないのですが、なんとも気味が悪いです。
原因の心当たりがある方はいらっしゃいませんでしょうか。

charの配列のため、生成しようとしているもののoperator newがオーバーロードされているわけでもありませんし…。
この現象が起こるのはVC6.0です。

友達の環境(すいません、聞きそびれました)では両方new []に飛んだそうです。