A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© stone24 中级黑马   /  2014-3-27 11:55  /  1059 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 stone24 于 2014-3-28 11:04 编辑

Void  test(Car  *newC)
{
          Car  *c2 = [Car  new];
        c2 ->wheels = 5;
        c2 ->speed = 300;
}

int  main()
{
        Car  *c = [Car  new];
        c ->wheels = 4;
        c ->speed = 350;
    test( c );
}
// test执行完后,内存里的形参指针和 c2 指针的存储空间随即销毁,但c2对象还会在,如果后面还想访问c2并设置它的成员变量该怎么做(指向它的指针没有了,再怎么访问它);后面再调用test ,生成的对象,还是c2吗?

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

2 个回复

倒序浏览
test执行完毕后,c2的对象还在,但是已经无法访问了,这种现象是内存泄露。
后面再调用test生成的对象虽然也叫c2,但是与上一次的c2是不同的对象,就好像是同名的人不是同一个人。

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
周宇华 发表于 2014-3-27 12:20
test执行完毕后,c2的对象还在,但是已经无法访问了,这种现象是内存泄露。
后面再调用test生成的对象虽然 ...

哦,了解了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马