Why? "pLast = ary + MAX - 1; " is very clear, this really shows that you understand calculating with pointers.
Wrong is the reversing function. This one is better.
Code:
void reverse (int *array, int size)
{
int temp;
int index;
for (index = 0; index < (size / 2); index++)
{
temp = array [index];
array [index] = array [size - index - 1];
array [size - index - 1] = temp;
}
}
A hint about debugging. Use printf's. Use them to display important data at certain places in the code. You can also use them to debug pointer calculations, if a pointer p is declared as int *p, then printf ("%d\n", p); prints out the address. So in that way you can check if calculations are going right.