By definition, an array has elements all of the same type, and an array's length is part of its type, so the inner lists cannot be arrays. The const-compatible type that doesn't specify a fixed size is a slice reference; you can use an array of slice references.
Minor nits: a pointer to memory and the number of elements, and the order of them is not guaranteed generally and not guaranteed to be the same across difference slice types.
I wasn't talking about the content of the slices (or arrays), I was talking about the layout of wide pointers. Probably it's nothing you care about and you can ignore me (I was just reacting to the phrasing "then size").
But anyway, given two slice wide pointers &[T] and &[U], Rust does not promise any of
Either one is a pointer to data followed by a length
Either one is a length followed by a pointer to data
And what I meant by ordering is that one could be a pointer to data followed by a length while the other is a length followed by a pointer to data.
(Instead you use functions like from_raw_parts if you're doing things that care about such low-level details, which I don't think you are.)