用C创建单链表时出现问题

[复制链接]
查看11 | 回复5 | 2011-9-13 23:44:02 | 显示全部楼层 |阅读模式
帮你改了一下,你仔细看一下,关键的地方是:主函数中定义的指针a在传到子函数中时,是个NULL值(或者是个野指针,其值不可定,会出问题),在Initlist(Linklist * L)子函数中,申请的L值不能带回Create_L中。 你可以在自己现在的程序后面加个调试语句看一下:printf("L1=%x\n" , L );//当主函数中a=NULL时,此时输出为0Initlist(L);printf("L2=%x\n" , L );//当主函数中a=NULL时,此时输出为0getchar();----------------------------------------------------------------以下为...
回复

使用道具 举报

千问 | 2011-9-13 23:44:02 | 显示全部楼层
这个问题我曾经也遇到过。。。VC里面需要用到指针的指针才能在子函数里面分配内存给其他函数的局部变量,所以传参的时候要用Linklist **L,传入的参数用&a,当然申请空间等操作就要用*a作为左值了!你可以在调试的时候发现a的地址在传入初始化子函数之后任然没有变,就是这个原因了。...
回复

使用道具 举报

千问 | 2011-9-13 23:44:02 | 显示全部楼层
Create_L(Linklist *L,int n){Linklist *p;int i;Initlist(L);for(i=n;i>0;--i){p = (Linklist *)malloc(sizeof(Lnode));cin >> (p->data);p->next = L->next;//这里出错...
回复

使用道具 举报

千问 | 2011-9-13 23:44:02 | 显示全部楼层
Linklist* Initlist(Linklist * s){s = (Linklist *)malloc (sizeof(Lnode));s ->next = NULL;return s;}void Create_L(Linklist *L,int n){Linklist *p;int i;L=Initlist(L);...
回复

使用道具 举报

千问 | 2011-9-13 23:44:02 | 显示全部楼层
Linklist * a;你这个是野指针吧...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行