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

本页主题: 【讨论】指针问题 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

ljpdxj



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

5come5帮你背单词 [ sovereign /'sovrin/ n. 君主,国王,统治者;a. 独立的,有主权的 ]


【讨论】指针问题

本帖被 zhd32 执行提前操作(2007-11-26)
下面的代码有什么指针问题?
Copy code
int * fun1 (void)
{
    int *Ptr;
    *Ptr = 10;
    return Ptr;
}

int * fun2 (void)
{
    int *Ptr;
    Ptr = (int *) malloc( sizeof (int));
    return Ptr;
}



[ 此帖被ljpdxj在2007-11-22 14:10重新编辑 ]
顶端 Posted: 2007-11-22 13:02 | [楼 主]
yinx



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

5come5帮你背单词 [ hover /'hovə/ vi. (鸟)翱翔,盘旋,徘徊,逗留 ]


fun1中不能对Ptr指针赋立即数;
fun2中的Ptr是一个局部变量,函数返回后会丢失,但malloc出来的空间却仍然残留在堆中
不知对不对……
顶端 Posted: 2007-11-22 13:24 | [1 楼]
ljpdxj



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

5come5帮你背单词 [ immigration /imi'greiən/ n. 移居,外来的移民,移民总称 ]


Quote:
引用第1楼yinx于2007-11-22 13:24发表的  :
fun1中不能对Ptr指针赋立即数;
fun2中的Ptr是一个局部变量,函数返回后会丢失,但malloc出来的空间却仍然残留在堆中
不知对不对……

第一个是因为*Ptr中存放的地址没有初始化,不能这样赋值
第二个我不也不知道哪里错了。。。
Ptr返回的是一个指向堆空间的一个地址,我觉得没有错。。。
顶端 Posted: 2007-11-22 13:30 | [2 楼]
yinx



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

5come5帮你背单词 [ ceremony /'seriməni/ n. 仪式,典礼,礼仪,礼节 ]


Quote:
引用第2楼ljpdxj于2007-11-22 13:30发表的  :

第一个是因为*Ptr中存放的地址没有初始化,不能这样赋值
第二个我不也不知道哪里错了。。。
Ptr返回的是一个指向堆空间的一个地址,我觉得没有错。。。


噢,对,栈空间被释放之前已经把返回值复制了一份传出去了
顶端 Posted: 2007-11-22 13:41 | [3 楼]
hhbhhb



性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
发贴: 292
威望: 0
浮云: 1105
在线等级:
注册时间: 2006-09-21
最后登陆: 2009-03-16

5come5帮你背单词 [ violence /'vaiələns/ n. 暴力,强暴,剧烈,强烈 ]


fun1将会以指针的形式返回10这个数字。当然10对应的实际地址是非法的,但是这个函数本身是没问题的。。。注意文中写的不是*Ptr=10;,而是Ptr=10。。强制转换那种编译都过不了的错误54。。
fun2单纯是分配一个int大小的空间并返回指针,应该也是没问题的。。只要后面记得释放。。
本帖最近评分记录:
  • 浮云:1(ljpdxj) 开始写错了。。。蝈蝈常来哟:)带动大家讨论问题共 ..
  • 顶端 Posted: 2007-11-22 13:42 | [4 楼]
    ljpdxj



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

    5come5帮你背单词 [ reckless /'reklis/ a. 轻率的,鲁莽的,不介意…的 ]


    不好意思,同志们我纠正下上面的错误,第三行是*Ptr=10
    顶端 Posted: 2007-11-22 14:11 | [5 楼]
    我来我网·5come5 Forum » 程序员之家

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