ASSERTEはメモリリークの警告ではないんですか?
structのデフォルトデストラクタはvirtualでないというのは
C++の仕様ですか?それともMSだけですか?あとclassもそうなんですか?
_ASSERTE(_BLOCK_TYPE_IS_VALID(pHead->nBlockUse));
で落ちます