如果我的C函数返回了一个堆上分配的对象,怎么删除?

[复制链接]
查看11 | 回复5 | 2011-11-3 02:58:42 | 显示全部楼层 |阅读模式
回复

使用道具 举报

千问 | 2011-11-3 02:58:42 | 显示全部楼层
free(xxx*p)p=NULLxxx是你这个对象的类型追问帅锅,我问题有补充哈,在看一看呢~~
回复

使用道具 举报

千问 | 2011-11-3 02:58:42 | 显示全部楼层
你这个是C哈。。。这样吧,我给你个建议,你再封装一个函数给别人用,和someFun对应的释放函数MyClass_FREE()。。你不能光给别人一个申请函数然后让对方自己用delete去释放肯定是不符合编程规范的。MyClass——FREE(MyClass*p){FREE(p);}以上是C的方法,平时写C的,只能用C的方法说下。或者你用auto_ptr,C的办法这个是最管用的,动态申请的内存自动释放
回复

使用道具 举报

千问 | 2011-11-3 02:58:42 | 显示全部楼层
工厂模式一般也是这样new的,不过工厂类自己管理释放一般原则是谁申请谁释放,如果不想显示delete采用auto_ptr.auto_ptrMyClasspa=SomeFun(...);赞同
回复

使用道具 举报

千问 | 2011-11-3 02:58:42 | 显示全部楼层
可以在classMyClass的构造函数中申请内存,在析构函数中释放内存,这样对象析构的时候内存跟着也就释放了赞同
回复

使用道具 举报

千问 | 2011-11-3 02:58:42 | 显示全部楼层
最好是把new和delete封装到一个类里面,你这样编程也是不规范的。赞同
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行