Valid constructor invoking in memory management-Collection of common programming errors

Check your C++ implementation. Some of them (I think the G++ compiler does this) call the C Runtime malloc to get the memory for new, then call the constructors.

If you have one of those implementations, all that you need to do is properly override the standard library malloc and free functions (read the library internals documentation) and C++ will work automatically.