salve a tutti, la mia richiesta è semplice e non so se veloce da risolvere.![]()
non capisco perché questo codice mi dà in esecuzione errore di segmentazione, l'errore sono quasi sicuro che stia nel while di decToEsL però non riesco a risolverlo. mi aiutate? siete la mia ultima spiaggia.
ah, e grazie.codice:#include <stdio.h> #include <stdlib.h> struct _listchar{ char info; struct _listchar *next; }; typedef struct _listchar* Listchar; void stampa(Listchar *l){ if (*l) while (*l){ printf("%c ",(*l)->info); (*l)= (*l)-> next; } else printf ("lista vuota"); } void decToEsL (int a, Listchar *l){ Listchar *temp; temp=malloc(sizeof(Listchar)); char dict[]= {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; if (a) while (a){ (*temp)->info = dict [a%16]; (*temp)->next=*l; *l=*temp; a=a/16; } else{ (*temp)->info = '0'; (*temp)->next = NULL; *l=*temp; } } int main(){ Listchar l; l=malloc(sizeof(Listchar)); decToEsL(64,&l); stampa(&l); return 0; }
quasi dimenticavo, se il codice non fosse chiaro, devo creare una lista dove ogni elemento è una cifra della conversione esadecimale di un intero a

Rispondi quotando