У меня есть такая структура, как
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 гарантированно равны нулю? Я думаю, что это так.