At 22:23 2006-12-29, Ray Devore wrote:
>--- "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?

no, it requires that you can use malloc()/free() in the same program 
that you use new/delete


>Ray
>
>__________________________________________________
>Do You Yahoo!?
>Tired of spam?  Yahoo! Mail has the best spam protection around
>http://mail.yahoo.com
>
>
>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