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); } }

Rispondi quotando