//In particolare vorrei capire la ''funzione malloc''
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct elem{
char cod[5];
int imp;
struct elem *next;
};
struct elem *corrente;
struct elem *primo, * nuovo;
void inser(void);
void visual(void);
void sistema(void);
main()
{
int sc;
primo = NULL;
while (sc != 3)
{
printf("1-Inserimento struct alla catena\n2-Visualizzazione catena\n3-Uscita\n");
printf("Scegli un'operazione da eseguire\n");
scanf("%d", &sc);
switch (sc)
{
case 1:
inser();
system("cls");
break;
case 2:
visual();
getch();
system("cls");
break;
case 3:
system("cls");
printf("Uscita dal programma");
break;
default:
printf("Scelta errata\n");
getch();
system("cls");
}
}
}
void inser()
{
char mycod[5] = "\0";
int myimp = 0;
nuovo = malloc(sizeof (struct elem *));
if (nuovo != NULL)
{
printf("Inserisci un codice\n");
scanf("%s", mycod);
printf("Inserisci un importo\n");
scanf("%d", &myimp);
strcpy(nuovo->cod, mycod);
nuovo->imp = myimp;
nuovo->next = NULL;
sistema();
}
else
printf("Spazio in RAM insufficiente\n");
}
void sistema()
{
if (primo == NULL)
primo = nuovo;
else
{
corrente = primo;
while (corrente->next != NULL)
corrente = corrente->next;
corrente->next = nuovo;
}
}
void visual()
{
for (corrente = primo; corrente!= NULL; corrente = corrente->next)
printf("%s\t%d\n", corrente->cod, corrente->imp);
}