free内存大小的问题
来源:互联网 发布:淘宝如何盗图不被投诉 编辑:程序博客网 时间:2024/05/16 13:03
我们知道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;
}
- free内存大小的问题
- free/delete 释放的内存大小?
- 认识 free指针背后(释放内存大小问题)
- 通过free命令获得系统剩余的内存大小
- free的问题总结
- 关于设置JVM内存大小的问题
- vector_construct_interator;delete为什么能识别free内存大小
- malloc和free的问题
- hadoop内存大小设置问题
- 关于结构体,联合体及内存大小的问题
- 关于JVM中堆内存大小的分配问题
- 代码分析虚继承类的所占内存大小问题
- free问题
- 内存大小的检测
- 图片占的内存大小
- 设置Eclipse的内存大小
- 检测内存大小的方法
- enum的内存大小
- 真机上写LOG
- LINUX下非交互加入root权限用户和修改密码的python小程序
- 2011年1月10日
- 我的IM - 基础篇[1] - Socket
- JavaScript高级培训-自定义对象
- free内存大小的问题
- j2me 单个canvas界面设计
- 被鄙视了
- 我的IM - 基础篇[2] - 基于UDP通讯的IM设计[开篇]
- 甲骨文兑现承诺 MySQL5.5全面上市
- 我的IM - 基础篇[3] - 基于UDP通讯的IM设计[基于XML格式的网络通讯协议 以及 包解析器和包处理器的基础概念]
- C#获取相对路径
- 在海思3515芯片移植qt-embedded(三)----手工编写qte程序的Makefile
- 在Flex Mobile中构建“本地”菜单