关于malloc和free个人的一点理解

malloc和free是在动态分配内存空间和释放时用到的。使用malloc和free通常是在定义一些链表或者指针数组等动态结构会用到,而malloc时,操作系统也会做一些工作,主要是从空闲堆中分配一块空间,而且,这块空间还包括了该空间块大小等信息,以便释放时用到。这大概也是一个malloc对应一个free这句话的一层意思。

之前想到,如果我分配的空间现在不需要使用这么大,就像原字符串被截断了这种情况该怎么办呢?目前想到的只有重新分配一个新的空间,然后把需要保留的copy到这里,释放原空间,或者是不管原空间大小,只需要正确设置结束符即可。不知道c++string的resize是怎么实现的?有时间去看看。

(PS:链表就不需要考虑了,基本的实现都是对每个节点malloc一个空间,这样删除,修改等等操作的单位都是节点,只要保证正确释放和不出现野指针即可。)

下面是对于malloc和free讲的比较好的一篇中文博客:

http://www.cnblogs.com/hanyonglu/archive/2011/04/28/2031271.html

原文链接: https://www.cnblogs.com/xiaolongren2012/archive/2013/01/07/2849197.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    关于malloc和free个人的一点理解

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/74765

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 下午4:33
下一篇 2023年2月9日 下午4:34

相关推荐