| |
クラスの中身に何も書かなくてもサイズは1バイト取られます。 中身が空だといって油断しないようにしましょう。 クラスの配列を生成した時にアドレスを変える必要があるので 最小単位(1バイト)のメモリが確保されています。 | |
1
2
3
4
5
6
7
8
9
10
11
12
| #include <cstdio> // printfに必要なヘッダー
class A
{
};
int main()
{
printf( "%d\n", sizeof(A) );
return 0;
} |
出力: 1 | |
余談ですが、要素数0の配列は作れます。 | |
1
2
3
4
5
6
7
8
9
10
| #include <cstdio> // printfに必要なヘッダー
int main()
{
int* i = new int[0];
delete[] i;
return 0;
} |