"Массив размера 1 вместо указателя"? Извините, но я не понимаю, как этот вопрос может иметь смысл. Я бы понял, если бы вы спросили о «массиве размера 1 вместо обычного члена (не массива)». Но "вместо указателя"? При чем здесь указатель? Как это взаимозаменяемо с массивом, чтобы оправдать вопрос?
Если вы действительно хотели спросить, почему он объявлен как массив размера 1, а не как массив, как в
struct {
a_struct_t a_member;
} b_struct;
тогда одним из возможных объяснений является хорошо известная идиома, называемая "struct hack". Вы можете увидеть объявление вроде
struct {
...
a_struct_t a_member[1];
} b_struct;
используется для реализации массива гибкого размера в качестве последнего члена объекта структуры. Фактический объект структуры позже создается в блоке памяти, который достаточно большой, чтобы вместить столько элементов массива, сколько необходимо. Но в этом случае массив должен быть последним членом структуры, а не первым, как в вашем примере.
P.S. Время от времени вы можете видеть, как «взлом структуры» реализуется через массив размера 0, что на самом деле является нарушением ограничения в C (то есть ошибка компиляции).