以下を実行してみると

> a = Array[3]
> a[1] = 7;
> a
[ <1 empty item>, 2, <1 empty item> ]

empty itemってのはundefinedとは違う? forで取り出すとundefinedになる?
やっまりArray(3)とかでもメモリ領域は確保されてるみたいですね