malloc和free的实现
来源:互联网 发布:收音机软件不需要网络 编辑:程序博客网 时间:2024/05/22 03:34
被人问到malloc和free的实现问题。
我们知道malloc的调用形式如:type* p = (type *)malloc(n*sizeof(type))
free的调用形式如:free(p)
好了,问题来了,free函数,我们只给传入一个指针,没有传入内存块的大小n,那么编译器怎么知道要释放多少字节的内存,如果让你来实
现怎么实现?
当时,蒙了,郁闷(丢人)。。。
之前自己都看过类似的代码的。。。
无非就是当申请内存的时候,p指向的内存的起始字节有几个存放着这块内存的一些信息,包括大小,类型等。
=====================================================
free的源代码:
struct mem_control_block
{
int is_available; //这是一个标记
int size; //这是实际空间的大小
}
void free(void *ptr)
{
struct mem_control_block *free;
free = ptr - sizeof(struct mem_control_block);
free->is_available = 1;
return;
}
- malloc和free的实现
- malloc和free实现的原理
- malloc和free实现的原理
- malloc和free的实现原理
- malloc和free的实现原理
- malloc()/free()的实现
- malloc()/free()的实现
- malloc/free的实现
- malloc()/free()的实现
- malloc()/free()的实现
- malloc,free的简单实现
- malloc和free的原理
- free和malloc的使用
- malloc和free的源代码
- malloc()和free()的原理
- malloc和free的问题
- free和malloc的用法
- malloc和free的原理
- [双语阅读]APEC峰会菜肴东西合璧 少用葱蒜防口气
- PHP 小技巧
- omnetpp在windows下的编译
- CUDA学习之旅2009.11.13---《深入浅出CUDA》学习3
- 1
- malloc和free的实现
- IIS下FLV不能播放问题的解决
- 小众歌手 niche singer
- Far cry 天壤之别
- 股民必须牢记的二十一条军规
- 各类节目中的“噱头” watercooler moment
- 80后最具哲理的话
- Developer Connection: Tour de Flex
- 中国大学生的“蚁族”生活