classのインスタンスサイズ
2010/01/04Visual C++で、アプリを終了するときにメモリリーク1byteという表示が出ていた。まぁメモリリークしている部分はnewしてdeleteを忘れているだけなんだが、1byteというのがいまいち納得がいかず、もしかしてメモリぶっ壊しているのではないかと疑ったが、メンバ変数を持たないクラスは1byteになるらしい。
気になったので実験。
class CaTest{
private:
int test();
// int m_i;
public:
CaTest();
~CaTest();
};
int CaTest::test()
{
return 1;
}
CaTest::CaTest()
{}
CaTest::~CaTest()
{}CaTest* p = new CaTest();
Visual Studio 2008で、pをdeleteしないで終了すると、メモリリークのサイズは1byte。メンバ変数がない場合はこうなるらしい。
ちなみに、int型を1つ持っている場合メモリリークは4byteとなる。1byteはどこへ?