最初のケースではなぜ12でないのですか? gccと打ち鳴らすの最新版、64ビットのLinux構造体のメモリサイズは異なりますか?
struct desc
{
int** parts;
int nr;
};
sizeof(desc); Output: 16
struct desc
{
int** parts;
};
sizeof(desc); Output: 8
struct desc
{
int nr;
};
sizeof(desc); Output: 4
不可能ではありません:これは、パッキングのために設計されたものです。 –
64ビット→8バイト→4バイトから8バイトに変更 - > 16 –
C標準では不可能です。 C標準にはstruct/pragmaパッキングは含まれていません – user411313