私は次のような構造体を持っています
typedef struct
{
int a; // Let's say this ends up being 4 bytes
int b; // 4 bytes
char text[10]; // 10 bytes
} blah_t;
static blah_t myvar;
- フィールドのサイズの合計が では 18 バイトですが
blah_t
、sizeof(blah_t)
パディングのために 20 バイトであるとします。 - は
myvar
静的であるため、ゼロ初期化されます。
質問:
- 静的変数のパディング バイト 19 と 20 は 0 であることが保証されていますか? そうでない場合は、静的変数であっても、構造体の
memset(&myvar, 0, sizeof(blah_t))
いずれかが有効になるようにする必要があります。memcmp
- どう
calloc(1, sizeof(blah_t))
ですか?バイト 19 と 20 はゼロであることが保証されていますか? 私はこれが事実だと信じています。