A struct is a nested type that has an ordered sequence of fields that can all have distinct types. Instead of having any physical storage allocated for its values, a struct array has one child array for each of its fields, since our goal is to be column or field oriented.

For example Struct<name: VarBinary, age: Int32> would would have two child arrays, one VarBinary array (a variable-sized binary layout), and one 4-byte primitive value array with Int32 as a data type. If we had the following content  [{"joe", 1}, {null, 2}, null, {"mark",4}] we would have the following memory layout: