True, but that can be overcome by another function that just gives you an address to put a new item. You would say, for example:
*(int *)vector_expand(v) = 2; *(int *)vector_expand(v) = 2;We'll just have to agree to disagree that what you've shown above is an acceptable API for a vector module.