If you instantiate an array, this only clears room for the number of entries in that array. No actual items are yet created. Although structs are passed by valued (copied whole) they are not automatically created on declaration. So you need to create a new struct first.
array = new t();