Reduce number of initialized bytes
#include <array.h>
void array_truncate(array* x, uint64 membersize, int64 len);
array_truncate(&x,sizeof(t),len);
array_truncate reduces the number of initialized bytes in x to exactly len*sizeof(t). If the number of initialized bytes was already this small (or smaller), array_truncate has no effect. If len is negative, array_truncate has no effect. If x is unallocated, array_truncate has no effect. If x has failed, array_truncate has no effect.
array_truncate does not change the allocation in x. If you want to free the memory used by x, use array_reset.