#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_NEW
int main()
{
Widget *wid=new Widget(2012);
delete wid;//为简化代码使用系统中的operator delete,程序运行时会出现问题,实际编程中应该自定义相应的operator delete
}
C++中通过自定义operator new 实现内存分配跟踪
最新推荐文章于 2024-08-02 23:14:52 发布