n_structs elements of type
struct_type, initialized to 0’s.
The returned pointer is cast to a pointer to the given type.
n_structs is 0 it returns
Care is taken to avoid overflow when calculating the size of the allocated block.
Since the returned pointer is already casted to the right type, it is normally unnecessary to cast it explicitly, and doing so might hide memory allocation errors.