I think:
When you execute the command
ReDim ocra(2).marks(2)
you only declare the size of ocra(
2).marks() to be 2. With ocra(
0).marks(), you did not declare!
You replace
ReDim ocra(2).marks(2)
by
ReDim ocra(0).marks(2)
Have a good luck! (I'm not supporter in VB.NET).