I’m making a little memory leak finder in my program, but my way of overloading new and delete (and also new[] and delete[]) doesn’t seem to do anything.
void* operator new (unsigned int size, const char* filename, int line) { void* ptr = new void[size]; memleakfinder.AddTrack(ptr,size,filename,line); return ptr; }
The way I overloaded new is shown in the code snippet above. I guess it’s something with the operator returning void* but I do not know what to do about it.
Can’t do that. Fix it.
Never ever try to overload new/delete globally. Either have them in a base class and derive all your objects from this class or use a namespace or a template allocator parameter. Why, you may ask. Because in case your program is more than a single file and using STL or other libraries you are going to screw up.
Here’s a distilled version of
newoperator from VS2005new.cpp: