It isn't in the middle of the array, or at least I don't think of it that way. The array is an array of size `size` (or rather, of size `git_array_size(a)`) and `git_array_alloc(a)` it is giving you a pointer to the element at the end of the array. There happen to be some extra elements after the end up to `asize`, but I think of that as an internal implementation detail.