Evan Carew said:
I'm sure Kevin means well, but I think you would do
well to put his posts in your filter list.
That's harsh coming from someone who's posting incorrect advice. 'malloc'
and 'new' are not interchangeable. Period.
The problem with his post is that most compiler vendors
do indeed use malloc under the hood as the default new
operator's machenery.
Which is irrelevant to the fact that the two should NEVER be intermixed.
While many vendors do add additional functionality to
new beside what malloc provides, ultimately, you are
interfacing with the OS's memory machenery, and thus
must use its entry points.
That's incorrect. Memory management is shared by the C++ library (for
fine-grained allocations) and the operating system (for the library's
internal use only). A call to 'new' or 'malloc' very rarely results in a
call to an OS system function, and when it does, it's an indirect
consequence.
In the UNIX world, this happens to be malloc
Wrong again. You're really racking up the misses. In UNIX, the fundamental
memory management system call is 'sbrk'. UNIX knows nothing about 'malloc'.
(I can't imagine it would be any different with MS products).
You need more imagination, then. Windows system calls for memory management
are even more convoluted and offer an entire suite of operations on
system-managed heaps, only a small subset of which is used as the
underpinnings of 'malloc' and 'new'.
Next time you arrogantly attack someone like Kevin for posting correct
information, you might want to look things up to avoid making a complete
fool of yourself.
Claudio Puviani