A complete example (expanding on my previous code):
Type ObjectData Field indexdata:indices[] End Type Type Indices Field indices:Int[] End Type SeedRnd(MilliSecs()) ' Create a new object of type ObjectData Local objectpointer:ObjectData = New ObjectData ' Resize the array "indexdata" to let it have 10 indexes (0..9) objectpointer.indexdata = objectpointer.indexdata[..10] ' Create new "indices" objects at all indexes of the array "indexdata" For i = 0 To 9 objectpointer.indexdata[i] = New indices Next ' Resize array "indices" for all "indices"-type-instances and set a random number for all of them For i = 0 To (objectpointer.indexdata.length - 1) ' Resize the array "indices" at each index of array "indexdata" to a random size between 1 and 10 objectpointer.indexdata[i].indices = objectpointer.indexdata[i].indices[..Rand(1, 10)] ' Set a random value from 1 to 100 inside the indices array at each index, ' which resides inside the "indexdata" array at each index For j = 0 To (objectpointer.indexdata[i].indices.length - 1) objectpointer.indexdata[i].indices[j] = Rand(1, 100) Next Next ' Print all data For i = 0 To (objectpointer.indexdata.length - 1) For j = 0 To (objectpointer.indexdata[i].indices.length - 1) PrintData(objectpointer, i, j) Next Print Next Function PrintData(a:ObjectData, x, y) Print "objectpointer.indexdata[" + x + "].indices[" + y + "]: " + a.indexdata[x].indices[y] End Function