Only way to REALLY find out if your code is working is to run and test it ;)
And btw, that's not really the best way to implement a stack. You're moving each item up the stack (slow) when you're pushing, and what if a stack element is used, but holds NULL? Ideally you would be able to use a "stack pointer" which points to the next available slot (or the one last pushed to). This avoids you having to set each element to NULL each time you pop. Not sure what constraints your assignment has though, so it might not be doable.
I ran it and the code doesn't push the numbers down when I want to add a number to the top of the stack. Also I dont know if I can use the stack pointer because my professor told me to make an array based stack.
The actual elements in the stack are at array[0], array[1], array[2], ..., array[count-1].
The element to be popped is the one at the top of the stack; the one at array[count-1]
The next element pushed will be placed at the top of the stack; at array[count].
To push an element on to the stack, we do not have to move any of existing elements.
Place the element at array[count], and then increment count.
To pop an element off the stack, decrement count and return the element that was just popped off
(that is, the element at array[count]).