вот мой код в C для создания связанного списка. Его выдача ошибки во время выполнения после цикла while выполняется один раз. Plz помогите мне в исправлении моего кода. (полностью путают, что где ошибка.) Сначала я делаю узел головы, а затем добавляю к нему дочерние узлы.Создание связанного списка по головам и узлу
#include <stdio.h>
#include <stdlib.h>
typedef struct node nd;
typedef nd *link;
struct node{
int data;
link next;
};
typedef struct {
int size;
link head;
}list;
void create(link temp)
{
link new;
new=(link)malloc(sizeof(nd));
printf("enter data: ");
scanf("%d",new->data);
temp->next=new;
temp=temp->next;
}
list createlist()
{
list sl;
sl.size=0;
sl.head=0;
return sl;
}
int main()
{
list sl;
sl=createlist();
link temp;
temp=sl.head;
char c;
while (1)
{
printf("Add node?: ");
scanf(" %c",&c);
if (c=='y')
{
create(temp);
sl.size++;
}
else
break;
}
return 0;
}
На какой линии он падает? Какой вклад вы даете? –
Было бы полезно изменить переменную 'new' в create() на что-то еще. Это не твоя проблема, просто плохой стиль. – KeithSmith
Не следует сканировать f ("% d", new-> data); be scanf ("% d", & new-> data); – KeithSmith