On Tuesday, August 30, 2011 03:43:39 Andrej Mitrovic wrote: > Right, but I was just trying to temporarily avoid GC allocation so > I've used a static array instead of a dynamic ones. Also, I don't know > of another term that is used to describe a int[][] array, other than > multidimensional.
It _is_ multi-dimensional. I'm not quite sure why Timon is saying that it isn't. Ultimately though, a multi-dimensional dynamic array is an array of arrays (or array of arrays of arrays of ...). When slicing it, you get the a portion of the outermost array. If you index that, you can get at the inner arrays to slice those if you want to, but the inner arrays know nothing about the outer arrays, and actually taking a "slice" of the whole where you get the outer array and some portion of the inner arrays would require creating a new array, so you can't really do it. I can't really think of a clean way of explaining it without diagrams, and even then it's a bit of a pain, but with a slice, it's only a matter of adjusting its ptr and length properties. If you want a multi-dimensional slice, you'd need to adjust the ptr and length properties of the arrays that the slice contained, and you can't do that without affecting the original arrays unless you copy them. So, ultimately, you need to construct a new multi-dimensional array with the pieces that you want if you want a multi- dimensional slice. - Jonathan M Davis