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.
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;
}
ah, e grazie.
quasi dimenticavo, se il codice non fosse chiaro, devo creare una lista dove ogni elemento è una cifra della conversione esadecimale di un intero a