我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: 一个指针传递的问题,烦恼N久了。。。 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

ljpdxj



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 687
威望: 0
浮云: 1108
在线等级:
注册时间: 2006-02-28
最后登陆: 2008-06-29

5come5帮你背单词 [ hinge /hind3/ v. 装以铰链;n. (门等的)合面,铰链 ]


一个指针传递的问题,烦恼N久了。。。

定义一个单链表并初始化
main()中调用节点初始化子函数fun(node **P)实现头结点的初始化.
不明白为什么这里要2级指针传递?!
一级指针不行么?

Quote:


#typedef struct
{
    int date;
    note *next;
}note;

int mian()
{
    note *P;
    fun(&p);
    ......
}

note * fun(note *p)
{
    p=(note*)malloc(sizeof(note));
    ......
}


以前的学的东西都搞忘记了。。。
是不是因为指针传递也是传拷贝?应该是这样哈?!!
所以第二个函数应该写为:


Quote:

note * fun(note  * *p)
{
  * p=(note*)malloc(sizeof(note));
    ......
}
顶端 Posted: 2007-11-10 21:12 | [楼 主]
稀饭包子泡菜



性别: 帅哥 状态: 该用户目前不在线
等级: 鹤立鸡群
发贴: 1309
威望: 0
浮云: 1106
在线等级:
注册时间: 2006-03-07
最后登陆: 2010-03-14

5come5帮你背单词 [ cup /kΛp/ n. 杯子;v. 一杯的量;奖杯;(使)成杯形 ]


所有都是值拷贝
顶端 Posted: 2007-11-10 21:19 | [1 楼]
ljpdxj



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 687
威望: 0
浮云: 1108
在线等级:
注册时间: 2006-02-28
最后登陆: 2008-06-29

5come5帮你背单词 [ enemy /'enimi/ n. 敌人,敌军,仇人,危害物 ]


Quote:
引用第1楼稀饭包子泡菜于2007-11-10 21:19发表的  :
所有都是值拷贝

&是传地址吧?呵呵~
顶端 Posted: 2007-11-10 21:20 | [2 楼]
稀饭包子泡菜



性别: 帅哥 状态: 该用户目前不在线
等级: 鹤立鸡群
发贴: 1309
威望: 0
浮云: 1106
在线等级:
注册时间: 2006-03-07
最后登陆: 2010-03-14

5come5帮你背单词 [ pore /po:/ n. 毛孔 ]


传递的都是值,形参和实参值相同
在函数里为指针重新分配空间是无法带回的
顶端 Posted: 2007-11-10 21:22 | [3 楼]
yinx



性别: 帅哥 状态: 该用户目前不在线
等级: 人见人爱
家族: 丢丢
发贴: 2333
威望: 0
浮云: 1260
在线等级:
注册时间: 2006-09-15
最后登陆: 2009-05-11

5come5帮你背单词 [ siege /si:d3/ n. 包围,围攻 ]


觉得5C5最近一下子冒出好多高手来啊~
顶端 Posted: 2007-11-10 21:26 | [4 楼]
zhd32



性别: 帅哥 状态: 该用户目前不在线
等级: 版主
家族: YD一族
发贴: 619
威望: 0
浮云: 543
在线等级:
注册时间: 2006-04-22
最后登陆: 2009-06-22

5come5帮你背单词 [ yawn /jo:n/ n. 呵欠;vi. 打呵欠 ]


LZ这样是对的
Copy code
note * fun(note  * *p)
{
  * p=(note*)malloc(sizeof(note));
    ......
}

但是要注意手动把 malloc的内存free掉
顶端 Posted: 2007-11-10 21:32 | [5 楼]
k哥



性别: 帅哥 状态: 该用户目前不在线
等级: 鹤立鸡群
家族: 物电学子快快快
发贴: 1109
威望: 0
浮云: 1109
在线等级:
注册时间: 2007-09-07
最后登陆: 2010-09-21

5come5帮你背单词 [ hammer /'hæmə/ n. 榔头,锤;v. 锤击,敲打,锻造 ]


Quote:
引用第3楼稀饭包子泡菜于2007-11-10 21:22发表的  :
传递的都是值,形参和实参值相同
在函数里为指针重新分配空间是无法带回的

在函数里动态生成的空间的是可以带回他的地址的
不过用单指针传递,在函数中对其赋值不能带回到主函数;而且在函数中不及时释放动态生成的空间的话,会出错,甚至会使程序直接 希白。。。
而用双指针传递,在函数中对其赋值可以带回主函数
顶端 Posted: 2007-11-10 22:57 | [6 楼]
abcd0106





性别: 帅哥 状态: 该用户目前不在线
等级: 鹤立鸡群
发贴: 1093
威望: 0
浮云: 1049
在线等级:
注册时间: 2005-10-08
最后登陆: 2009-04-04

5come5帮你背单词 [ simplify /'simplifai/ vt. 简化 ]


Quote:
引用第4楼yinx于2007-11-10 21:26发表的  :
觉得5C5最近一下子冒出好多高手来啊~


就是啊
顶端 Posted: 2007-11-12 11:41 | [7 楼]
不会游泳的鱼



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 514
威望: 0
浮云: 1117
在线等级:
注册时间: 2007-08-29
最后登陆: 2008-06-07

5come5帮你背单词 [ extraordinary /iks'tro:dinəri/ a. 非常的,特别的 ]


  要将指针的地址传过去.
顶端 Posted: 2007-11-12 11:46 | [8 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.009430(s) query 5, Time now is:11-22 21:50, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号