【发布时间】:2014-04-24 09:30:24
【问题描述】:
我想在 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("%s\n", curr->val);
curr = curr->next ;
}
}
但是,我不断收到一个
赋值从没有强制转换的指针生成整数
警告和
格式“%s”需要类型“char *”,但参数 2 具有“int”
如果结构体中的 val 是一个字符,为什么会出现这个错误?
旁注:char letter[] 正在从一个单独的 main 方法传入字母/字符。
我正在通过本教程学习 C 和链表:http://www.learn-c.org/en/Linked_lists。
【问题讨论】:
-
结构定义了
char而不是char[]或char*
标签: c string struct linked-list c-strings