A growable array: elements sit in one contiguous block, and when it is full the structure allocates a bigger block and copies everything over. Go slices and Rust Vec work this way.