You know that ahead of time?
Obviously you could just start building it at , but you
probably know that (i.e. if you're getting the array from
myFunc( &final );
Quickest way to reverse is to just start at last index and
decrement your count. If you want a completely new
array that is reversed, just allocate another and start
from end and work your way to the beginning.
Allocating another 512 bytes isn't a big deal is it?
EDIT: fixed error in code