Base* b1 = NULL; // 仮想関数を定義したクラス
char mem[255] = "";
b1 = (Base*)mem; // ①これはダメ
b1 = (Base*)malloc(sizeof(Base)); // ②これもダメ
b1 = new Base(); // ③これはOK
デバッガで追うとoperator new()の後のコンストラクタで
mov dword ptr [eax],offset Base::`vftable'
をしているようだ。というかコンパイラはnewしないとコンストラクタを呼ばない。