[Logo]
Forums Register Login
multidimensional array
int a[][]=new int[5][];

does this mean that
a[0]=null;
a[1]=null; and so on till a[4] ? i think this is why i get null pointer exception when i try to sue a[0][0];

sorry for asking so many questions...just making sure all my concepts are clear



why doesnt this me arrayoutofindexexception?
 
Raju Champaklal wrote:int a[][]=new int[5][];


As far as the code is concerned it does throw an ArrayIndexOutOfBoundsException but as you placed it inside the initializer the exception is thrown when an object of this class is created/instantiated. Try writing new A() in main() method to check it out.

Going back to your first question:
Raju Champaklal wrote:
int a[][]=new int[5][];

does this mean that
a[0]=null;
a[1]=null; and so on till a[4] ? i think this is why i get null pointer exception when i try to sue a[0][0];


This is an array of arrays so the cells you refer to by the first dimension are actually references to the second array so they indeed are initialized to contain null values. This also implies that you cannot refer to a[0][0] since there isn't anything initialized there which results in NullPointerException.

Regards,
Paul.
oh yes...i got that error...i was actually expecting to get Exceptionininitializererror...when this exception thrown?
 
Raju Champaklal wrote:oh yes...i got that error...i was actually expecting to get Exceptionininitializererror...when this exception thrown?


ExceptionInInitializerError is thrown when something goes wrong within static initialization block while your exception was thrown in instance initializer. You can obtain it by simply reimplementing your class as follows:



Regards,
Paul.
Wink, wink, nudge, nudge, say no more ... https://richsoil.com/cards



All times above are in ranch (not your local) time.
The current ranch time is
Oct 17, 2017 17:42:00.