I'm having a little trouble trying to add some elements to a linked list. My problem is that despite the fact that the code adds the "proces" INSIDE the function, once I get out of it, the "Stiva" becomes empty and if I try to "print" its elements all I get is NULL. This is what I've writted so far, I'd greatly appreciate it if someone could help, I really don't understand where it fails to pass the argument through the pointer:

```
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

typedef struct
{
   int prioritate;
   int id;
} TProces;

typedef struct celst
{
   struct celst *urm;
   void *info;
} TCelSt, *TStiva, **TStive;

int Push(TStiva Stiva, int id, int prt)
{
   TStiva StivaNoua;
   TProces proces;
   StivaNoua = (TCelSt*)malloc(sizeof(TCelSt));
   StivaNoua->info = (TProces*)malloc(sizeof(TProces));
   proces.id = id;
   proces.prioritate = prt;
   memcpy(StivaNoua->info, &proces, sizeof(TProces));
   StivaNoua->urm = Stiva;
   Stiva = StivaNoua;
   return 1;
}

int ShowStiva(TStiva Stiva)
{
   TCelSt *aux;
   if(Stiva == NULL) printf("CRY \n");
   for(aux = Stiva; aux!=NULL; aux=aux->urm)
   {
      printf("[%d %d]\n", ((TProces*)(aux->info))->id, ((TProces*)(aux->info))->prioritate );
   }
   return 1;
}

int main()
{
   TStiva Stiva;
   Stiva = NULL;
   Push(Stiva, 5, 8);
   Push(Stiva, 8, 1);
   ShowStiva(Stiva);
   return 0;
}

```