首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

请教有关linux内存分配的有关问题

2012-04-17 
请问有关linux内存分配的问题函数calloc在开完堆空间后会自动初始为0,这比malloc安全方便,但是好像malloc

请问有关linux内存分配的问题


函数calloc在开完堆空间后会自动初始为0,这比malloc安全方便,但是好像malloc在编程中出现的频率远高于calloc,
是这样吗?在内核里哪个用的多?

另外,看书上说,free完之后再free某块堆空间会出错,那到底会有什么样后果?
free不是把占用了的空间放回malloc池里吗?那再free一次会很严重么?不是再放回一遍么?反正已经在池里了,有区别吗?

谢谢


p。s。大家新年快乐·

[解决办法]
不初始化速度肯定要快一点,不过使用不注意的话,容易出问题
看个人习惯,也有人习惯先malloc,然后memset初始化

free的问题,看一下free的源码就清楚了
[解决办法]
malloc的性能比calloc高。
在内核中,哪个也不用。malloc和calloc是库函数提供的函数,内核不可能用到。

内存malloc和free可以简单看成是一个链表来理解。
malloc看成是把一个结点从链表中摘出来。
free看成是把一个结点挂到链表中。
[解决办法]
在内核中使用kmalloc

热点排行