array -> struct