Я пытаюсь создать связанный список , содержащий данные типа char.
По какой-то причине код не работает.Предупреждение компилятора GCC для функции "add_bottom_ListEl":
"предупреждение: передача аргумента 2 в add_bottom_listEl делает целое число из указателя без приведения"
и
"примечание:ожидаемый 'char', но аргумент имеет тип 'char * "
Я подозреваю, что что-то не так с тем, как я использую указатели, но я пробовал много-много комбинаций, передавая указатели на функцию и т.д ..Но, похоже, ничего не работает.
Вот основная функция и все остальные используемые.MAX_CHAR определен во всех файлах (#define MAX_CHAR 30)
int main()
{
char name[MAX_CHAR];
scanf("%s", name);
ListEl *head = malloc(sizeof(ListEl));
strcpy(head->name, name);
head->next = NULL;
printf("%s", head->name);
add_bottom_listEl(head, name);
print_listEl(head);
return 0;
}
void add_bottom_listEl (ListEl *head, char name)
{
ListEl *newEl;
while(head->next!=NULL)
{
head=head->next;
}
newEl = (ListEl*) malloc(sizeof(ListEl));
strcpy(newEl->name, name);
newEl->next = NULL;
}
void print_listEl(ListEl* head)
{
puts("print");
ListEl* current = head;
while (current!=NULL)
{
int i=1;
printf("%d.%s\n", i, current->name);
++i;
current = current -> next;
}
}
Структура ListEl - это просто обычный элемент связанного списка
struct ListEl
{
char name[MAX_CHAR];
struct ListEl* next;
};
Очевидно, я использовал
typedef struct ListEl ListEl;
В каждом учебном пособии по связанным спискам в Интернете или на этом сайте показано только, как обрабатывать списки с целыми числами или числами в целом, но не с массивами (символами).Может ли кто-нибудь помочь мне здесь?