[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: out of memory
- From: Björn De Meyer <bjorn.demeyer@...>
- Date: Sat, 05 Oct 2002 11:33:13 +0200
Julien Cugniere wrote:
> Edgar Toernig wrote:
> > I found the problem. At least here it's a bug in realloc(x,0). It's
> > not an alias for free(x). It truncates x to a fixed small size (and
> > even returns that address). Of course, that will prohibit any defrag-
> > mentation. Replacing the freeing l_realloc in lmem.c by a free(block)
> > cures the problem.
> I confirm that this solves the problem for me too, both on djgpp (gcc 2.95.2)
> and mingw32 (gcc 3.2). Thanks a lot!
> Julien Cugniere
On my linux 2.2.10 system, with a libc.so.6 from 1999, the
example Edgar Toernig gave worked fine. Apparently, this is
an issue of realloc(x,0) not working in the same way under
different C library implementations.
I do not know what the ANSI C standard says about using
realloc(x,0). Is it allowed according to the standard to
use realloc to free memory? Or is it something undefined
or non-canonical? I would have thought that the latter is
"No one knows true heroes, for they speak not of their greatness." --
Björn De Meyer