Salve a tutti , sto cercando di fare una linked list con inserimento ordinato , ma sono incappato in qualche errore di segmentazione (ho poca dimestichezza con struct e puntatori).
grazie a tutti per l'aiuto
#include <stdio.h>
#include<stdlib.h>
typedef struct {
int info;
struct no *next;
}no;
no *node(int val){
no 2*temp=(no*)malloc(sizeof(no));
temp->info=val;
temp->next=NULL;
return temp;
}
void lista(no *head , int val ){
no *temp;
temp=head;
no *nodo=node(val);
if (temp->next==NULL || (temp->info>=nodo->info)){
nodo->next=temp;
temp=nodo;
}else {
while(temp->next != NULL && (temp->next->info < nodo->info) ){
temp=temp->next;
};
nodo->next=temp->next ;
temp->next=nodo;
}
}
void stampalista(no *head){
no *temp=NULL;
temp=head;
while ( temp->next !=NULL){
printf("%d ->",temp->info);
temp=temp->next;
};
}
int main(){
int a=NULL;
no *head=NULL;
head=(no*)malloc(sizeof(no));
head=
do{
printf("1 inserisci \n2 visualizza\n 3 esci");
scanf("%d",&a);
if(a==1){int val=0;
printf("inserisci valore\n");
scanf("%d",val);
lista(head,val);
}else if (a==2){
stampalista(head);
}
}while(a!=3);
}