Я новичок в C.
У меня проблема, когда я пытаюсь найти ученика с самым длинным именем и удалить его из моего связанного списка. Для этого мне нужно сравнить длину comp * name; для каждого члена структуры.
struct birthday{
char *name;
...
struct list_head list;
};
LIST_HEAD(birthday_list);
int simple_init(void)
{
struct birthday *person;
person = kmalloc(sizeof(*person), GFP_KERNEL);
person->name = "Alicia";
INIT_LIST_HEAD(&person->list);
list_add_tail(&person->list, $birthday_list);
person = kmalloc(sizeof(*person), GFP_KERNEL);
person->name = "Ben";
INIT_LIST_HEAD(&person->list);
list_add_tail(&person->list, $birthday_list);
person = kmalloc(sizeof(*person), GFP_KERNEL);
person->name = "Dave";
INIT_LIST_HEAD(&person->list);
list_add_tail(&person->list, $birthday_list);
...
struct birthday *ptr;
list_for_each_entry(ptr, &birthday_list, list)
{
printk(KERN_INFO "Name: %s\n",
ptr->name);
}
}
То, что я ищу, - это сравнить Алисию с Беном, сохранить Алисию как более длинное имя, сравнить Алисию с Дейвом и удалить узел Алисии из связанного списка. Я столько всего перепробовал, но безуспешно. Если у кого есть