バグが出て原因が分からず悩んでいたところ、あほなミスをしていたので、反省の意味もこめて晒す。
とあるクラスのインスタンスを配列で作成しようとして、次のようなコードを書いてしまった。
TestClass* p = (TestClass*)malloc( sizeof(TestClass) * n );
なぜnewではなく、わざわざmallocを使う。これではコンストラクタが動くはずも無く。それに気が付くのにけっこうかかってしまった。
正しくはこう。
TestClass* p = new TestClass[ n ];
解放はこう。
delete []p;
ミスったことも間抜けだが、それにすぐ気が付かないのが情けない。