При попытке добавить узел в конце связанного списка для каждого введенного пользователем ввода, что-то не так с этим кодом , Я не понимаю, почему это происходит? Может ли кто-нибудь указать, в чем проблема? Если кто-нибудь знает, пожалуйста, предложите мне что-то исправить эту ошибку?Входящий узел со связанными списками каждый раз, когда вводит пользователя, но что-то пошло не так с любым методом
#include <stdio.h>
//structure with two fields
struct node
{
int data;
struct node *next;
};
// data type definition
typedef struct node node;
//pointer to node which initially set to NULL
node *head=NULL;
//fucntion create and display
void create(int num);
void display();
main()
{
int n,i,num;
printf("enter the no of nodes : ");
scanf ("%d",&n);
for(i=0;i<n;++i)
{
printf("enter the data : ");
scanf("%d",&num);
create(num);
}
display();
}
// Функция создания
void create(int num)
{
printf("\n");
if(head==NULL)
{
node *temp=(node*)malloc(sizeof(node));
temp->data=num;
temp->next=head;
head=temp;
}
else
{
node *temp1=head;
while(temp1!=NULL)
{
temp1=temp1->next;
}
node *ptr=(node*)malloc(sizeof(node));
ptr->data=num;
ptr->next=temp1->next;
temp1->next=ptr;
}
}
// Функция отображения()
void display()
{
node *temp;
temp=head;
printf("list is : ");
while(temp!=NULL)
{
printf("%d->",temp->data);
temp=temp->next;
}
}
в функции создания (INT NUM), ваш цикл в то время как делает указатель temp1 земля в NULL (конец списка). После этого temp1-> next = ptr; вызывает ошибку, becau se вы пытаетесь получить доступ к местоположению NULL – JavaHopper