Я вижу похожую тему, но они мне не помогли. У меня есть связанный список и функция для вставки элементов.
struct node{
int data;
struct node* next;
} node;
struct node* head;
void insert(struct node* head,int x);
int main(){
struct node* head = (struct node*) malloc(sizeof(struct node));
int x;
while(1){
printf("Please enter number\n");
scanf("%i", &x);
insert(head,x);
print(head); // function that works
}
return 0;
}
void insert(struct node* head,int x){
struct node* temp = malloc(sizeof(struct node));
temp->data = x;
temp->next = NULL;
if(head->next != NULL) temp->next = head;
head = temp;
free(temp);
}
GDB сообщает, что я получаю ошибку сегментации в строке с конструкцией if:
if(head->next != NULL) temp->next = head;
В чем моя ошибка?