Attento agli indici. Non è consentito un indice negativo in un array.
La prima chiamata a push si traduce come:
codice:
if(top<size-1){

   ptr[-1]=obj;
   ++top;
   return 1;
}