免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: liec
打印 上一主题 下一主题

请大家帮我看看这个程序的问题出在哪里,在下谢过了!关于链表的 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2006-10-06 14:08 |只看该作者
呵呵,惭愧。。一下子搞糊涂了
真丢脸哦,祝你中秋快乐

[ 本帖最后由 harly 于 2006-10-6 14:14 编辑 ]

论坛徽章:
0
22 [报告]
发表于 2006-10-06 14:36 |只看该作者
原帖由 harly 于 2006-10-6 14:08 发表
呵呵,惭愧。。一下子搞糊涂了
真丢脸哦,祝你中秋快乐


有啥丢脸的,我也经常犯错

论坛徽章:
0
23 [报告]
发表于 2006-10-06 14:46 |只看该作者
我不是很明白这个函数:
void init_list(linklist ** s)
{
        *s = (linklist *)malloc(sizeof(linklist));---->*s是相当于指向一个struct实体的指摘,那么**s
算什么呢??
        if (!s) {
               printf("No enough memory\n");
               exit(-1);
        }

        memset(*s, 0, sizeof(linklist));
}

按理说**s是指向*s的地址的指针,但是我不明白这个东西在实际中有什么作用啊??源代码中好像没有用到**s变量啊。
PS: 我说的**s表示2级指针,*s表示1级指针。^_^偶不是很明白

论坛徽章:
0
24 [报告]
发表于 2006-10-06 23:46 |只看该作者
原帖由 huaxue 于 2006-10-6 11:24 发表
我做了这样的修改(只改了creatlist和main函数),我不知道错在哪里??
creatlist函数的形参是指针型,应该是地址传递,不是值传递,为什么还是不对呢?
平时2级指针用的不多,希望大牛们指导俺一下

     10  ...

使用指针达到传地址之目的也是通过传值(地址值)实现的,所以可以这么说函数都是“值传递”。“地址传递”只是一种功能性的说话,实质上都是值传递。当然“地址传递”一般都是针对要回传值的情况,在你的程序中,要回传分配的空间首址,本身就是一个地址(或者说一个指针),就要使用指向指针的指针(即二级指针)来回传他。
不知道说清楚没,要是画图就容以理解了

论坛徽章:
0
25 [报告]
发表于 2006-10-10 14:23 |只看该作者
^_^似乎有点明白了,不过实在还是比较绕人的,呵呵,谢谢你了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP