I'm not really getting the bigger picture with regards to linked lists. What needs to be done to link it? Also, there is an error with strncpy and for some reason on line 35 its not recognising struct trainset anymore and calls it a undefined variable.
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
struct trainset {
char name[50];
int price;
struct trainset *next;
};
void show_list(struct trainset *list);
int main (void){
struct trainset *root;
root = (struct trainset *)malloc(sizeof(struct trainset));
strncpy(root ->name, " ", 50);
root ->price = 0;
root ->next = 0;
struct trainset *first_train;
first_train = (struct trainset *) malloc(sizeof(struct trainset));
strncpy(first_train->name, "Fantasy Train Set", 50);
first_train->price = 129;
first_train->next = NULL;
struct trainset *second_train;
second_train = (struct trainset *)malloc(sizeof(struct trainset));
first_train->next = second_train;
strncpy(first_train->name, "Uncle Bobs train set", 50);
second_train ->price = 69;
second_train ->next = NULL;
struct trainset *third_train;
third_train = (struct trainset *)malloc(sizeof(trainset));
second_train->next = third_train;
strncpy(third_train ->name, "Budha Bread Train", 50);
third_train ->price = 169;
third_train ->next = NULL;
show_list(root);
return 0;
}
void show_list(struct trainset *list)
{
while(list->next!=NULL)
{
printf("train set name: %s\nprice: %d", list->name, list->price);
list = list->next;
}
printf("trainset name name: %s\n", list->name);
}