Generics and defining elements of containers and arrays.
The caller owns the data, and is responsible for free it.