返回信息流最近看到关于C语言内存泄露的问题,每次用malloc()分配完内存之后是不是就要跟着一个free (),那么这个free要在什么地方加呢?
这是一条镜像帖。来源:北邮人论坛 / cpp / #74903同步于 2013/10/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
关于内存泄露
HFlyaway
2013/10/30镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
这个问题……真不好回答。
两种选择:
1.你知道什么时候这个对象再也不会使用了,你就free。
2.改用有垃圾回收的语言。再也不用手动free。
[ema33]我是@nuanyangyang大神的脑残粉
【 在 nuanyangyang 的大作中提到: 】
: 这个问题……真不好回答。
: 两种选择:
: 1.你知道什么时候这个对象再也不会使用了,你就free。
: ...................
c语言的话,可以用Valgrind工具 来检测内存泄露。 但大型程序(尤其是多人合作开发的工程)中,成对出现也会因为某个逻辑被其他人更改,导致函数可能提前返回,执行不到free(),这也是C语言的缺陷。工程中,常用对象管理资源,也就是C++的优势,详见: http://wp.me/p45TF9-2g
【 在 iFadeToBlack 的大作中提到: 】
: 从来不free,等crash了系统会free的。
犀利,找这个思路开发后台程序,绝对死翘翘的节奏啊~~~
实在不行,就换个带垃圾回收的语言吧,用不到自己free了