C++中通过自定义operator new 实现内存分配跟踪

来源:互联网 发布:淘宝升级天猫 编辑:程序博客网 时间:2024/04/29 03:50
#include<iostream>#include<algorithm>using namespace std;void* operator new(size_t size,const char *msg,int line){    cout<<"the file:"<<(char*)msg<<" line number:"<<line<<" and size is:"<<size<<endl;    return malloc(size);}class Widget{public:        Widget(int _id):id(_id){}        void SayHello()        {            cout<<"my id:"<<id<<endl;        }~Widget(){};    private:        int id;};#define GC_NEW new(__FILE__,__LINE__)#define new GC_NEWint main(){Widget *wid=new Widget(2012);delete wid;//为简化代码使用系统中的operator delete,程序运行时会出现问题,实际编程中应该自定义相应的operator delete}


原创粉丝点击