关于malloc和free的内存问题

myenthusiasm 2011-05-25 03:29:24
我有个疑问:比如有一个指针point,用malloc 给它分配块内存。然后通过point指针将一串字符串存到该内存中。字符串以'\0'结尾,长度比该块内存小。然后用free(point) 释放内存的时候,是释放了整块内存的吧,用什么记录了这块内存的。我是说,怎么不是释放到'\0'就结束了?
...全文
156 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
myenthusiasm 2012-04-17
  • 打赏
  • 举报
回复
看了这两篇帖子大概明白了:
http://blog.csdn.net/crzy_sparrow/article/details/7439254
赵4老师 2011-05-26
  • 打赏
  • 举报
回复
引用 12 楼 wizard_tiger 的回复:
应用程序调用“操作系统的内存管理模块”提供的malloc函数申请得到的内存,后来调用free函数释放之后,“操作系统的内存管理模块”并没有删除或改变其内容,
而只是记住这片内存以后有谁调用malloc的话可以被再利用了。
wizard_tiger 2011-05-26
  • 打赏
  • 举报
回复
malloc函数申请的内存用free函数释放之后并没有删除其内容,
而只是告诉计算机这片内存可用了。
stein42 2011-05-26
  • 打赏
  • 举报
回复
molloc free都是标准库函数,不同的操作系统是用不同的方法完成的,每次分配都能记住分配了多大空间,所以free就知道释放多大一块空间,而不管这块内存里面的数据。
AnYidan 2011-05-25
  • 打赏
  • 举报
回复
A free block contains a pointer to the next block in the chain, a record of the size of the block, and then the free space itself; the control information at the beginning is called the ``header.''

heap 是循环链表,上述是每个结点的结构,每次分配给你的实际上比你要得多了一块,header
赵4老师 2011-05-25
  • 打赏
  • 举报
回复
操作系统提供的malloc功能,它帮你记住了你申请时填写的字节数,所以你free的时候只需要提供起始地址即可。甚至你进程退出时,操作系统还会自动释放你进程中所有malloc的内存,因为它也记住了你这个进程每次调用malloc申请时返回的起始地址。
nightkids_008 2011-05-25
  • 打赏
  • 举报
回复
malloc是生成的一个管理内存的结构,4个成员,具体记不清了 好像一个是 上次申请内存的地址,这次申请的地址,第三个忘了,第四个是大小。
酒红色的泪 2011-05-25
  • 打赏
  • 举报
回复
malloc分配内存的时候,内核会记录你分配了的内存大小,至于你里面要存什么样的数据,内核无需关心,因此不可能只释放到'\0'结束,而是会对整块申请的内存空间删除使用标记。
fragileeye 2011-05-25
  • 打赏
  • 举报
回复
malloc在分配内存时就有这块内存地址有记录。。
mrkang007 2011-05-25
  • 打赏
  • 举报
回复
可能是一种约定吧,不清楚帮顶。。。
ljt3969636 2011-05-25
  • 打赏
  • 举报
回复
呵呵,按照你想法我要申请int[n]把整形复制进去连'\0'都没有,怎么释放?

堆管理器负责申请堆空间,如果是堆链表(一种形式),会有一个结构,里面有指针指向申请的内存(看成一个节点),还有一个值用来记录申请的大小~
www_adintr_com 2011-05-25
  • 打赏
  • 举报
回复
系统的内存管理会记录你分配内存时的信息的,通常会记录在返回给你的指针地址前面一点的位置.
bdmh 2011-05-25
  • 打赏
  • 举报
回复
释放全部
zhuywei123 2011-05-25
  • 打赏
  • 举报
回复
free释放内存并没有删除内存内容,其实是断开了指针和内存的指向关系,所以free之后指针应置NULL。
千杯不醉-sen 2011-05-25
  • 打赏
  • 举报
回复
他有自己的大小的,申请多少就会释放多少。

69,373

社区成员

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

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