Does stack-stack count? You do not need a different data structure that way. In this case pop an element and push it onto the other stack. Do this for all elements and you inverted the stack. On the downside of it is that you get another stack, it is not inplace.
If you, as you added to your question, want to do this using pointers and counters, it is very implementation depended and violates the definition of a stack. Your solution can be broken at any new release or change of implementation of the stack. I would refrain from doing this. (This of course is different if you implement your own stack, but then you could use a different data structure in the first place to represent your problem more accurately.)