我想在c中添加一个字符串到链表。我能够弄清楚如何添加一个整数,所以我认为添加一个字符串不会有太大的不同。所以我尝试了以下操作:
struct node{
char val;
struct node * next;
};
typedef struct node item;
void linked_list(char letter[]) {
item * curr, * head;
int i;
head = NULL;
curr = (item *)malloc(sizeof(item));
curr->val = letter;
curr->next = head;
head = curr;
curr = head;
while(curr) {
printf("%sn", curr->val);
curr = curr->next ;
}
}
然而,我总是得到
赋值从没有强制类型转换的指针中得到整数
预警和
格式'%s'期望类型为'char *',但参数2为'int'
如果,在结构体中,val是一个字符,为什么我得到这个错误?
旁注:char letter[]
从单独的main方法传入字母/字符。
我正在学习C和链表从这个教程:http://www.learn-c.org/en/Linked_lists.
val是一个char
,它实际上是一个介于0 - 255之间的数字。
您想要的是一个char *
,它是一个字符串。