Зачем нужен массив с нулевыми элементами?

В коде ядра Linux я обнаружил следующую вещь, которую не могу понять.

 struct bts_action {
         u16 type;
         u16 size;
         u8 data[0];
 } __attribute__ ((packed));

Код здесь:http://lxr.free-electrons.com/source/include/linux/ti_wilink_st.h

Какова необходимость и назначение массива данных с нулевыми элементами?