At 03:32 2006-12-29, Nico Heinze wrote:
>--- In [email protected], "Joseph A. Marrero" <[EMAIL PROTECTED]>
>wrote:
> >
> > Hmmm. Thats pretty interesting. On MS Windows, malloc and
> > new internally use the same function (I can't remember the
> > name) to allocate memory. So, I would think they would be
> > compatible in most cases where constructors/destructors are
> > not involved. I use malloc in legacy C libraries that I
> > still use in my C++ projects and have not ever noticed a
> > problem in the past.
> >
> > In short, I agree malloc should not be used in C++ code
> > except for cases where you are explicitly using C code
> > within a C++ project. I could be wrong... who knows.
> >
> > --- Nico Heinze <[EMAIL PROTECTED]> wrote:
> >
> > > --- In [email protected], "Paul Herring"
> > > <pauljherring@> wrote:
> > > >
> > > > On 12/28/06, Nico Heinze <grollnar@> wrote:
> > > >
> > > > > 4) I know that many people don't trust my words here,
> > > > > but the result of mixing new/delete with
> > > malloc/calloc/free
> > > > > is compiler and runtime specific; sometimes it works
> > > without
> > > > > hassle, in other cases it can easily kill your server
> > > > > applications without any chance to find out why.
> > > >
> > > > It is perfectly Legal[tm] to have both new/delete and
> > > > malloc/free in the same program. What is undefined is
> > > > deleting a malloced pointer and freeing a newed
> > > pointer.
> > > > (And incidentally, and slightly OT, is delete[]ing a
> > > newed
> > > > pointer and deleting a new[]ed pointer)
> > > <snip>
> > >
> > > Though it is legal, I have experienced a case where using
> > > new/delete and malloc()/free() in the same program crashed
> > > the application. After having removed all free() calls and
> > > re-ordered everything such that only a very few malloc()
> > > calls took place at the beginning of the application and
> > > afterwards only new/delete were used, everything ran fine
> > > until I had to upgrade from Sun Forte 4.0 to Forte 5; at
> > > that point I had to get rid of the malloc() stuff
> > > completely, otherwise I would not have been able to
> > > upgrade the remainder of the application.
> > >
> > > In short: even though it's legal, never rely on malloc()/
> > > free() and new/delete working within the same application.
> > > It might work for your system, but it need not.
>
>Frankly spoken I was not talking about Windows; in fact I have
>experienced this trouble on a Solaris system two years ago, so it may
>be that meanwhile this behaviour has been remedied.
>
>What I wanted to express is that you should not rely on such mixes to
>work under all circumstances.

Again I say.  The standard REQUIRES it to work.  If you work with 
broken compilers, I can't offer any suggestions


>Regards,
>Nico
>
>
>
>To unsubscribe, send a blank message to 
><mailto:[EMAIL PROTECTED]>.
>Yahoo! Groups Links
>
>
>

Victor A. Wagner Jr.      http://rudbek.com
The five most dangerous words in the English language:
               "There oughta be a law" 

Reply via email to