NULL is OK, both for passing and for returning.
Generics and defining elements of containers and arrays.
Parameter for returning results. Default is transfer full.
Exposed in C code, not necessarily available in other languages.
The caller owns the data, and is responsible for free it.
The data is owned by the callee, which is responsible of freeing it.