Ошибка в программе C - ожидаемый "char *", но аргумент имеет тип char
Итак, я пишу эту программу, и я новичок, поэтому, пожалуйста, извините мой спагетти-код, я сталкиваюсь с ошибкой, когда пытаюсь выполнить этот код, и я просто не могу понять, почему.
#include <stdio.h> #include <stdlib.h> #include <string.h> struct listNode { char data; struct listNode *nextPtr; }; typedef struct listNode ListNode; typedef ListNode *ListNodePtr; /*prototypes*/ char insert( ListNodePtr *head, char value); void printList( ListNodePtr currentPtr ); int isEmpty( ListNodePtr sPtr); void main() { ListNodePtr startPtr = NULL; char item; printf("Enter the character\n"); insert(&startPtr,item); printList(startPtr); } char insert( ListNodePtr *head, char value) { ListNodePtr newptr; ListNodePtr currentptr; ListNodePtr previousptr; newptr = malloc( sizeof( ListNode )); if(newptr !=NULL) { strcpy(newptr->data,&value); newptr->nextPtr= NULL; previousptr=NULL; currentptr = *head; if ( previousptr == NULL ) { newptr->nextPtr = *head; *head = newptr; } /* end if*/ else /* insert new node between previousPtr and currentPtr*/ { previousptr->nextPtr = newptr; newptr->nextPtr = currentptr; } /* end else*/ /* end if*/ } else { printf( "%s not inserted. No memory available.\n", value ); } } void printList( ListNodePtr currentPtr ) { if ( isEmpty( currentPtr )) { puts( "List is empty.\n" ); } else { puts( "The list is: " ); while ( currentPtr != NULL ) { printf( "%s --> ", currentPtr->data ); currentPtr = currentPtr ->nextPtr; } puts( "NULL\n" ); } } int isEmpty( ListNodePtr sPtr ) { return sPtr == NULL; }
Им получать сообщение об ошибке;
[^]
Пожалуйста, помогите мне, ребята".
Что я уже пробовал:
Ошибка, по-видимому, происходит из этой части кода;
strcpy(newptr->data,&value); newptr->nextPtr= NULL; previousptr=NULL; currentptr = *head;
И, как я уже сказал, я абсолютный новичок, и я не пробовал ничего другого, кроме google this, но все еще не могу найти решение. Заранее спасибо за вашу помощь!