Hy there! Its my first time here, because i have not had a problem like this before. The program has a problem when i run it. When i choose "natakar" the second time and input the information it crashes. There is probably a problem with pointers or something in the function "elt natakar" but i do not know where, so if somebody could help me it would be a blessing
my code:
Code:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <Windows.h>

#define MIZ 77

typedef struct{
        int miza;
        char natakar[10];
        char kuhar[10];
        char jed[10];
        SYSTEMTIME str_t;
        int kolicina;
        int status;        //1...vneseno   2...pripravljeno
        }narocilo;
        
typedef struct element{
        narocilo narocilnica;
        struct element *naslednji;
        }elt;

elt *natakar(int *st){
     elt *prvi;
     elt *tmp;
     elt *pom;
 
     int i=*st;
     char ime[10];
     char jed1[10];
     
     system("CLS");
     tmp=(elt*)malloc(1*sizeof(elt));
     pom=(elt*)malloc(1*sizeof(elt));
     int temp=-1;
     while((temp<1)||(temp>77)){
                                system("CLS");
                                printf("\tMeni NATAKAR:\n\n");
                                printf("Miza: ");
                                scanf("%d",&temp);
                                }
     tmp -> narocilnica.miza = temp;
     system("CLS");
     printf("\tMeni NATAKAR:\n\n");
     printf("Vase ime: "); 
     scanf("%s", ime);
     strcpy(tmp -> narocilnica.natakar, ime);
     strcpy(tmp -> narocilnica.kuhar, "?");
     system("CLS");
     printf("\tMeni NATAKAR:\n\n");
     printf("Kaj bodo jedli: "); 
     scanf("%s", jed1);
     strcpy(tmp -> narocilnica.jed,jed1);
     temp=-1;
     while ((temp<1)||(temp>20)){          
                           printf("Koliko jedi: ");
                           scanf("%d",&temp);
                           system("CLS");
                           }
     tmp -> narocilnica.kolicina = temp;
     tmp -> narocilnica.status = 1;
     tmp -> naslednji = NULL;
     GetSystemTime(&tmp -> narocilnica.str_t);
     
     if(i==0){
               prvi=tmp;
               prvi -> naslednji = NULL;
               }
     else{
          pom = prvi;
          while(pom -> naslednji != NULL){
                                         pom = pom -> naslednji;
                                         }
          printf("konec zanke");
          pom -> naslednji = tmp;
          }
          
     *st=*st+1;
     return prvi;
     system("PAUSE");
     }
     
void kuhar(int *st, elt *prvi){
     int i=*st;
     int x=-1;
     system("CLS");
     printf("\tMeni KUHAR:\n\n");

     if(i==0){
               printf("Trenutno se ni nobenih narocil.\n\n");
               }
     else{
          elt *pom;
          pom = (elt*)malloc(1*sizeof(elt));
          pom = prvi;
          printf("Pripravimo se na kuhanje...\n\n");
          printf("NAROCILA: \n\n");   //dejmo izpisat vsa narocila
          while (pom != NULL){
                                           printf("\nMiza: %d", pom -> narocilnica.miza);
                                           printf("\nJed: %s * %d",pom -> narocilnica.jed, pom -> narocilnica.kolicina);
                                           if(pom -> narocilnica.status == 1) printf("\nStatus: SE NI SKUHANO");
                                           if(pom -> narocilnica.status == 2) printf("\nStatus: Skuhal %s", pom->narocilnica.kuhar);
                                           printf("\nMizo je stregel %s", pom -> narocilnica.natakar);
                                           printf("\nDatum: %d.%d.%d \n\n",pom -> narocilnica.str_t.wDay,pom -> narocilnica.str_t.wMonth,pom -> narocilnica.str_t.wYear);
                                          
                                           pom = pom -> naslednji;
                                           }
          }
     
     system("PAUSE");
     }

void meni(){
	 int x=-1;	
     elt *prvi;

	 int st=0;    //premikam se po tabeli
	 
	 while (x!=0){ 
		system("CLS");
		printf("\nIzbirajte:\n\t(1) Natakar\n\t(2) Kuhar\n\t(3) EXIT\n");
		printf("\n\tIzbira: ");	
        scanf("%d",&x);
        if(x==1) prvi=natakar(&st);
        else if(x==2) kuhar(&st, prvi);
		}
     free(prvi);
     }

int main(){
    meni();
    return 0;
    }