malloc 和 free函数

yunaijun 2010-03-24 04:49:51
我定义一个2维函数或者一维函数,用了malloc sizeof。

我后面要不要free?

如果不用有什么后果,free具体用处是什么?谢谢
...全文
277 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangzhongke007 2010-03-27
  • 打赏
  • 举报
回复
可以说,凡是讲到动态内存分配的书上都会讲到这个问题。问题是,不知道你有没有仔细看过书。
周靖峰 2010-03-27
  • 打赏
  • 举报
回复
楼上的各位的评论让我学到了不少知识
某某9 2010-03-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yuzl32 的回复:]

malloc 分配内存
free 释放内存

不用free的话,会导致系统内存越来越少,也即通常所说的内存泄露。
[/Quote]malloc 分配内存
free 释放内存

不用free的话,会导致系统内存越来越少,也即通常所说的内存泄露。
FoxSerratifolia 2010-03-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yuzl32 的回复:]
malloc 分配内存
free 释放内存

不用free的话,会导致系统内存越来越少,也即通常所说的内存泄露。
[/Quote]

还有25楼说的,要配对用的。
tracy198534 2010-03-26
  • 打赏
  • 举报
回复
malloc 要与free配对使用
qingfengbannixing 2010-03-26
  • 打赏
  • 举报
回复
不要的垃圾你说要不要清理??
liujiaji 2010-03-26
  • 打赏
  • 举报
回复
还要注意malloc不一定申请成功,而且要强制类型转化,
free仅是释放空间,别忘了把指针附空,防止野指针
最重要的是别用free释放已经释放的空间,程序会立即崩溃
xuwmzi 2010-03-25
  • 打赏
  • 举报
回复
嗯,上边说的对,不过你把程序关上就好了,再打开又开关漏水了
cakes 2010-03-25
  • 打赏
  • 举报
回复
必须FREE 否则内存泄露
不知名小ITer 2010-03-25
  • 打赏
  • 举报
回复
[Quote=引用楼主 yunaijun 的回复:]
我定义一个2维函数或者一维函数,用了malloc sizeof。

我后面要不要free?

如果不用有什么后果,free具体用处是什么?谢谢
[/Quote]
要free,不free就会内存泄漏..
xinprince 2010-03-25
  • 打赏
  • 举报
回复
要free的,占用内存空间
bobo364 2010-03-25
  • 打赏
  • 举报
回复
可能楼主在数据结构的书里看到的都很少用free(),但实际中这两个是成对使用的
louyong0571 2010-03-25
  • 打赏
  • 举报
回复
确实是基本知识
dos5gw 2010-03-25
  • 打赏
  • 举报
回复
free(指针)
OnMyWay2010 2010-03-25
  • 打赏
  • 举报
回复
想知道楼主说的2维函数和1维函数指的是什么?
__Jun__ 2010-03-25
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 ostrichmyself 的回复:]
引用楼主 yunaijun 的回复:
我定义一个2维函数或者一维函数,用了malloc sizeof。

我后面要不要free?

如果不用有什么后果,free具体用处是什么?谢谢


上面都有正确答案。 打个比方,街边烧烤的时候,在烤羊肉串的时候,你总得先放在一个架子上,

这个架子的空间是有限的。 如果你要烤肉的时候,先需要让架子找个地方(malloc)给你放肉串。 肉烤好……
[/Quote]
哈哈,比喻得好,难道你喜欢烤羊肉串???
jbz001 2010-03-25
  • 打赏
  • 举报
回复
不用free释放内存的话,会导致内存泄漏的
  • 打赏
  • 举报
回复
一楼 二楼 解释简单 直接!
chaoliu1024 2010-03-24
  • 打赏
  • 举报
回复
x-teamer团队 2010-03-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 yunaijun 的回复:]
我定义一个2维函数或者一维函数,用了malloc sizeof。

我后面要不要free?

如果不用有什么后果,free具体用处是什么?谢谢
[/Quote]

上面都有正确答案。 打个比方,街边烧烤的时候,在烤羊肉串的时候,你总得先放在一个架子上,

这个架子的空间是有限的。 如果你要烤肉的时候,先需要让架子找个地方(malloc)给你放肉串。 肉烤好了,

它就可以下架了(free),因为这个空间还要让其它的肉串使用。

假如你烤好了的肉,一直不下架。 烤到最后, 就没有可用的空间了,然后你再也不能烤肉了。

通常情况下,如果你只烤一块肉。 OK,这是没问题的,但当你持续烤肉, 就需要free了。

当然,程序员需要严谨,因此提出,哪里有malloc,哪里就要对应一个free
加载更多回复(11)

69,372

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧