首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

循环链表段异常

2013-11-05 
循环链表段错误本帖最后由 u011748522 于 2013-11-04 12:00:34 编辑我这有一个初始化循环链表的函数,在空

循环链表段错误
本帖最后由 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 编程指南

热点排行