Zmenseni objektu pomoci realloc (a Electric Fence)

Cejka Rudolf cejkar na kazi.dcse.fee.vutbr.cz
Pondělí Leden 31 17:20:39 CET 2000


Jan Kasprzak <kas na informatics.muni.cz> wrote:
> 	pri ladeni programu pomoci Electric Fence jsem narazil na problem:
> Pokud zavolam realloc() a pozaduji velikost objektu zmensit (nikoli zvetsit),
> muze mi realloc() vratit jiny pointer, nebo musi zachovat ten puvodni? Vypada

Ja to chapu tak, ze muze vracet libovolny pointer. Co neni zakazano, je
dovoleno - a u realloc() se pise pouze o zachovavani obsahu, nikoli
o zachovavani pointeru. Dival jsem se na manualove stranky ruznych
OS - a vzdy explicitne zminuji zachovavani obsahu, ale o pointeru se
psalo jen v souvislosti s moznosti jeho zmeny. Nic vic.

> Single Unix Spec pise:
> : If the new size of the memory object would require movement of the object,
> : the space for the previous instantiation of the object is freed.

> coz nic vlastne nerika :-(

Myslim, ze kdyz se v SUS explicitne o zachovavani pointeru nic nerika,
tak to znamena, ze se pointer proste muze zmenit a na jeho zachovani
neni mozne se spolehat.

-- 
Rudolf Cejka   (cejkar na dcse.fee.vutbr.cz;  http://www.fee.vutbr.cz/~cejkar)
Brno University of Technology, Faculty of El. Engineering and Comp. Science
Bozetechova 2, 612 66  Brno, Czech Republic


Další informace o konferenci Linux