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"
