>>878
> a = Array.new(2).map{Array.new(3).map{Array.new(4, 0)}}

それじゃダメなので質問してるんですが。

size が必ず [2, 3, 4] と指定されるのでしたら

def foo(size)
return Array.new(2).map{Array.new(3).map{Array.new(4, 0)}}
end

で OK なんでしょうけど、渡される size は [5, 4, 3, 2] だったり
[2, 3, 4, 5, 6, 7] だったりとサイズも次元も可変なのです。