Как указывалось в предыдущем ответе, компилятору разрешено добавлять отступы. Обычно это делается потому, что иногда аппаратное обеспечение требует, чтобы определенные типы данных возникали на определенных границах памяти. Похоже, ваша система хочет поместить указатели на 8-байтовую границу.
Заполнение находится в конце структуры и необходимо, чтобы каждый элемент в массиве struct desc все еще находился на 8-байтовой границе.