Scrivere una funzione f (e main per chiamarla) che riceve un array di 5 interi e alloca una lista di 5 elementi contenente gli elementi dell’array in ordine inverso.
il mio codice è questo ma mi da come errore che non ho inizializzato la variabile locale listak
codice:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
typedef struct elemento {
int inf;
struct elemento * pun;
} elemento_lista;
typedef elemento_lista *lista;
lista InsInTesta(lista listak, int elem);
void VisualizzaLista(lista listak);
int main()
{
int array[5];
int i = 0;
lista listak;
for (i = 0; i < 5; i++)
{
printf("Inserisci l'elemento\n");
scanf_s("%d", &array[i]);
}
listak->inf = array[0];
listak->pun = NULL;
for (i = 1; i < 5; i++)
{
listak = InsInTesta(listak, array[i]);
}
VisualizzaLista(listak);
_getch();
return 0;
}
lista InsInTesta(lista listak, int elem) {
lista punt;
punt = (lista)malloc(sizeof(elemento));
punt->inf = elem;
punt->pun = listak;
return punt;
}
void VisualizzaLista(lista listak) {
if (listak == NULL)
printf(" ---| \n");
else {
printf(" %d\n ---> ", listak->inf);
VisualizzaLista(listak->pun);
}
}