读书人

循环链表段异常

发布时间: 2013-11-05 14:40:42 作者: rapoo

循环链表段错误
本帖最后由 u011748522 于 2013-11-04 12:00:34 编辑 我这有一个初始化循环链表的函数,在空表的情况下插入新结点出现段错误,用GDB调试时发现初始化空表后next指针指向的地址不对, 一直想不明白原因, 故发贴向各大侠求教,谢谢.
有问题代码如下:


typedef char data_type;

// 单链表start
typedef struct node
{
data_type data;
struct node *next;
}link_node;

typedef link_node *link_list;


void init_link_list(link_list L)
{
link_list L = (link_node *)malloc(sizeof(link_node));
L->data = '0';
L->next = L;
}

int main(void)
{
link_list head2;
head2 = Init_link_list();
insert_node(head2, 'm', 1);
insert_node(head2, 'a', 2);
}


把init_link_list函数修改后测试就正常了, 正常的代码如下:
link_list  Init_link_list(void)
{
link_list L = (link_node *)malloc(sizeof(link_node));
L->data = '0';
L->next = L;
return L;
}
c? 链表 段错误
[解决办法]
楼主 貌似还不是很太理解函数传参的意义呢!
找个基础的书籍看看函数这章的内容吧!补补基础!
[解决办法]
参考三楼。
[解决办法]
引用:
楼主 貌似还不是很太理解函数传参的意义呢!
找个基础的书籍看看函数这章的内容吧!补补基础!


林锐 高质量 C++& C 编程指南

读书人网 >C语言

热点推荐