On Mon, Oct 11, 1999 at 11:05:15AM +0200, Ales Smodis wrote:
> Marko Mlakar wrote:
> >
> > Prej obratno, realloc je najbolj neumna in nevarna fcija pri
> > alociranju pomnilnika.. Tale funkcija (recmo add_char) bo
> > sirila rezervirani prostor in unicevala podatke.. prej ali slej
> > se bo vse skupej sesulo.
> >
> Do sedaj nisem nikjer naletel na komentarje podobne tvojim. The GNU C
> Library Reference Manual (glibc 2.1.1), datiran na 11. januar 1999
> pravi o realloc tole:
>
> void * realloc (void *ptr, size_t newsize)
> The realloc function changes the size of the block whose address is
> ptr to be newsize.
> Since the space after the end of the block may be in use, realloc
> may find it necessary to copy the block to a new address where more
> free space is available. The value of realloc is the new address of
> the block. If the block needs to be moved, realloc copies the old
> contents.
> If you pass a null pointer for ptr, realloc behaves just like
> `malloc (newsize)'. This can be convenient, but beware that older
> implementations (before ISO C) may not support this behaviour, and
> will probably crash when realloc is passed a null pointer.
>
> Ze sam po sebi si ne drznem trditi, da bi razvijalci knjiznice glibc
> vnesli funkcijo realloc, kot si jo ti opisal, zgornji izsek pa to se
> potrjuje, saj se rezervira cisto nov blok pomnilnika dane velikosti,
> ce nova velikost presega staro.
> A lahko s cim podkrepis svojo trditev?
>
> -AlesS
Torej, resnici na ljubo, na linuxu te funkcije jaz se nisem
uporabil, ker sem se iz casov ko sem se igral na hp-ux in
solarisu se posteno opeku s to funkcijo. Dolgo Dolgo sem rabil
preden sem nasel problem in od takrat se le-te izogibam.
Tako kot je Ales (Kosir) v enem od prejsnih mailov napisal, najbrz
drzi, da je stvar v "sodobnem" linuxu popravljena. Se vedno pa
sam ne bom zaupal tej funkciji, da bo kopirala/premikala in
na novo alocirala *moje* podatke :-) -- poleg tega, ne gre pozabiti
omeniti, da je taka varianta ena najbolj pocasnih.
mare
--
==---------------------------------------==
Marko Mlakar - [EMAIL PROTECTED]
===-------------------------------------===
PGP Public key: finger [EMAIL PROTECTED]
PGP signature