Это причуда инициализаторов Си.C не имеет «наполовину инициализированных» переменных;переменная либо неинициализирована, либо полностью инициализирована.
Если инициализатор указывает меньше значений, чем члены структуры или массива, все остальные элементы рекурсивно неявно инициализируются равными нулю.
Таким образом, {0}
универсальный инициализатор: он устанавливает первое поле (независимо от того, что это может быть) на 0
, а все остальные поля (если таковые имеются) также автоматически устанавливаются на 0
.
В вашем случае первое полепервый член первого элемента Data
, то есть мы явно устанавливаем Data[0].Len
и полагаемся на нулевую инициализацию для всего остального.