内存分配管理 自定义
2016-07-06 11:21
197 查看
在内存管理中,经常需要自定义内存分配释放,也就是需要定义new 和 delete.
通常为了有针对性的对某些对象的内存分配进行管理,定义一个内存管理基类
1.定义
2.使用
class MemObject : public Memory { };
3.调用
通过该方式,实现内存的自我管理和监控。
通常为了有针对性的对某些对象的内存分配进行管理,定义一个内存管理基类
1.定义
struct Memory { public: static void* Alloc(size_t size); static void Free(const void* p); static void* Alloc(size_t size, int line, const char *func); static void* Alloc(size_t size, const char* fmt, ...); void* operator new(me_size size); void* operator new(me_size size, int line, const char file[]); void* operator new(me_size size, int line, const char file[], const char* info); void operator delete(void* p); void operator delete(void* p, int line, const char file[]); void operator delete(void* p, int line, const char func[], const char* ext) {}; void* operator new[](me_size size); void operator delete[](void* p); };
2.使用
class MemObject : public Memory { };
3.调用
MemObject* mo = new MemObject(); int* pi = (int*)Memory::Alloc(sizeof(int) * 10); Memory::Free(pi); delete mo;
通过该方式,实现内存的自我管理和监控。
相关文章推荐
- 拼接多个 wchar_t *
- 无锁队列
- HDU 4608 I-number(YY)
- android的启动流程
- jquery判断checked的三种方法解释:
- Hibernate笔记_Mapping
- 理解RESTful架构
- numpy 数组转换矩阵,矩阵转换数组
- 二叉树建立及前序遍历
- 三种消息监听器
- 平衡二叉树学习
- jstl标签库基础教程及其使用代码(一)。
- .NET面试题系列[2] - .NET框架基础知识(2)
- Bootstrap选项卡与Masonry插件的完美结合
- Linux进程的几种状态(一)
- 360加固动态脱壳
- ListView长按弹出菜单项
- android:TableLayout表格布局详解
- 在java中使用FreeMark导出数据到excel表格
- 微信支付各种key的申请