Я пытаюсь реализовать связанный список в C - начиная с простого, с одним списком, содержащим один узел.Однако я сталкиваюсь с некоторыми проблемами при попытке добавить данные в узел.Вот моя реализация до сих пор:
struct mylist_node {
int data;
};
struct mylist {
struct mylist_node *head_pt;
};
void mylist_init(struct mylist* l){
struct mylist_node head_node;
head_node.data = 5; //First try
l->head_pt = &head_node;
l->head_pt->data = 5; //Second try
};
И мой основной метод:
int main()
{
struct mylist ml, *ml_pointer;
ml_pointer = &ml;
mylist_init(ml_pointer);
printf("%d\n", ml_pointer->head_pt->data);
ml_pointer->head_pt->data = 4;
printf("%d\n", ml_pointer->head_pt->data);
return 0;
}
Это должно распечатать
5
4
Если мои знания указателей верны.Тем не менее, он выводит
0
4
Как вы можете видеть, я пытаюсь установить данные узла дважды в методе mylist_init.Ни один из них, похоже, не работает - в то же время, запись в него и чтение из него из моего основного метода работает просто отлично.Что я делаю не так?