C 链表,指针的故事
我有以下代码:C 链表,指针的故事,c,linked-list,chain,pointer-to-pointer,C,Linked List,Chain,Pointer To Pointer,我有以下代码: void pushInList(t_chan **chan, char *name, char *nick_user) { t_chan *new_channel; (void)nick_user; if ((new_channel = malloc(sizeof(t_chan))) == NULL) return ; new_channel->name = name; new_channel->prev =
void pushInList(t_chan **chan, char *name, char *nick_user)
{
t_chan *new_channel;
(void)nick_user;
if ((new_channel = malloc(sizeof(t_chan))) == NULL)
return ;
new_channel->name = name;
new_channel->prev = (*chan);
(*chan) = new_channel;
}
display_list(t_chan *chan, int fd)
{
int i;
i = 0;
while (chan != NULL)
{
printf("list : %s\n", chan->name);
chan = chan->prev;
}
}
int create_chanel(int fd, char *buffer, t_chan **chan)
{
char *tmp;
int i;
i = 0;
if ((tmp = get_param(fd, buffer, 2, "NICK")) == NULL)
return (EXIT_FAILURE);
while ((*chan) != NULL)
{
/* FUTUR CHECK OF EXISTING CHANEL*/
(*chan) = (*chan)->prev;
}
if ((*chan) == NULL)
pushInList(chan, tmp, "Kilian");
return (EXIT_SUCCESS);
}
int main()
{
t_chan *chan;
char *test;
chan = NULL;
test = strdup("JOIN Coucou");
create_chanel(4, test, &chan);
test = strdup("JOIN Google");
create_chanel(4, test, &chan);
printf("-------------------\nlast display :\n");
display_list(chan, 4);
}
我不明白为什么我的列表每次都是空的。我传递了一个指针,但在我的主列表中,列表没有保留其值。
你能帮我吗,我不明白
这是通道的链表,当客户端发送“Join Coucou”时,如果通道Coucou不存在,我将创建一个新节点
提前谢谢大家,,
诚恳地在create_chanel中::
(*chan)=(*chan)->prev代码>-->chan=&(*chan)->prev
(并且:如果((*chan)==NULL)
在循环之后,您不需要),您可以查看我的双链接列表示例(),这可能更容易理解列表的工作原理。