--- "Victor A. Wagner Jr." <[EMAIL PROTECTED]> wrote:
> 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
>
> Victor A. Wagner Jr.      http://rudbek.com
> 

Victor,

I am definitely NOT an expert on the standard.  Are
you saying the standard requires malloc() and delete
to work together, and it requires new and free() to
work together?

Ray

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

Reply via email to