Puoi restituire un int per avere il nuovo numero di elementi. Quindi
int EliminaNegativi(int **a, int n)
ma non Azzera perché, come hai detto, li elimini non li azzeri ... altrimenti si fa ancora confusione.
Il Temp non serve a nulla.
E mostra come operi dal main ... per chiarire ancora meglio.