I want to override the operator new in a class, as follows:

class CMyclass
{
public:
void* operator new(size_t);
void operator delete(void*);
};


void* CMyclass:perator new(size_t size)
{
void *p;

p = MemoryManager.Alloc(size); // Using customized memory manager to allocate buffer

if (NULL == p)
AfxThrowMemoryException();
}

However, in debug version, whenever MemoryManager.Alloc(size) returns NULL, which means alloation fails, the AfxThrowMemoryException will cause the following exception:

Access violation reading location 0x#######

How to fix the problem.